{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/Home2.vue?0b0d","webpack:///./src/components/Icon/CustomerSupport.vue?fb23","webpack:///./src/Navbars/Sidenav/SidenavList.vue?53e3","webpack:///./src/store/index.js","webpack:///./src/components/Icon/UnrealIcon.js","webpack:///./src/App2.vue?d871","webpack:///./src/Navbars/Sidenav/index.vue?ce10","webpack:///./src/Navbars/Sidenav/SidenavList.vue?94af","webpack:///./src/Navbars/Sidenav/SidenavCollapse.vue?bf76","webpack:///src/Navbars/Sidenav/SidenavCollapse.vue","webpack:///./src/Navbars/Sidenav/SidenavCollapse.vue?fa36","webpack:///./src/Navbars/Sidenav/SidenavCollapse.vue","webpack:///./src/components/Icon/Shop.vue?6245","webpack:///src/components/Icon/Shop.vue","webpack:///./src/components/Icon/Shop.vue?d000","webpack:///./src/components/Icon/Shop.vue","webpack:///./src/components/Icon/Document.vue?0e6a","webpack:///src/components/Icon/Document.vue","webpack:///./src/components/Icon/Document.vue?c856","webpack:///./src/components/Icon/Document.vue","webpack:///src/Navbars/Sidenav/SidenavList.vue","webpack:///./src/Navbars/Sidenav/SidenavList.vue?374b","webpack:///./src/Navbars/Sidenav/SidenavList.vue","webpack:///src/Navbars/Sidenav/index.vue","webpack:///./src/Navbars/Sidenav/index.vue?b1da","webpack:///./src/Navbars/Sidenav/index.vue","webpack:///./src/components/Configurator.vue?1778","webpack:///src/components/Configurator.vue","webpack:///./src/components/Configurator.vue?869a","webpack:///./src/components/Configurator.vue","webpack:///./src/components/CharacterPanel.vue?5ff8","webpack:///./src/components/SoftAvatar.vue?a843","webpack:///src/components/SoftAvatar.vue","webpack:///./src/components/SoftAvatar.vue?cfc4","webpack:///./src/components/SoftAvatar.vue","webpack:///src/components/CharacterPanel.vue","webpack:///./src/components/CharacterPanel.vue?a7f1","webpack:///./src/components/CharacterPanel.vue","webpack:///./src/components/EnvironmentPanel.vue?868f","webpack:///src/components/EnvironmentPanel.vue","webpack:///./src/components/EnvironmentPanel.vue?f38b","webpack:///./src/components/EnvironmentPanel.vue","webpack:///./src/components/SlidesPanel.vue?1056","webpack:///src/components/SlidesPanel.vue","webpack:///./src/components/SlidesPanel.vue?dbf3","webpack:///./src/components/SlidesPanel.vue","webpack:///./src/components/CameraPanel.vue?16e9","webpack:///./src/components/CameraCard.vue?534f","webpack:///./src/camera.js","webpack:///src/components/CameraCard.vue","webpack:///./src/components/CameraCard.vue?930f","webpack:///./src/components/CameraCard.vue","webpack:///src/components/CameraPanel.vue","webpack:///./src/components/CameraPanel.vue?adc4","webpack:///./src/components/CameraPanel.vue","webpack:///./src/components/RecordingPanel.vue?a0dd","webpack:///src/components/RecordingPanel.vue","webpack:///./src/components/RecordingPanel.vue?92b3","webpack:///./src/components/RecordingPanel.vue","webpack:///src/App2.vue","webpack:///./src/App2.vue?d48b","webpack:///./src/App2.vue","webpack:///./src/aws-exports.js","webpack:///./src/soft-ui-dashboard.js","webpack:///./src/main.js","webpack:///./src/amplify_helper.js","webpack:///./src/assets/img/redpill.png","webpack:///./src/components/RecordingPanel.vue?559d","webpack:///./src/components/Icon/CustomerSupport.vue?8633","webpack:///./src/components/SlidesPanel.vue?d35b","webpack:///./src/utils.mjs","webpack:///./src/ikRig.js","webpack:///./src/retargeter.js","webpack:///./src/parser.js","webpack:///./src/WebRTCClient.js","webpack:///./src/engine.js","webpack:///./src/components/CameraPanel.vue?8e36","webpack:///./src/components/EnvironmentPanel.vue?a711","webpack:///./src/views/Home2.vue?3763","webpack:///src/views/Home2.vue","webpack:///./src/views/Home2.vue?0b92","webpack:///./src/views/Home2.vue?1827","webpack:///./src/router/index.js","webpack:///./src/components/CustomSelect.vue?ddcb","webpack:///src/components/CustomSelect.vue","webpack:///./src/components/CustomSelect.vue?924f","webpack:///./src/components/CustomSelect.vue","webpack:///./src/components/SoftButton.vue?f460","webpack:///src/components/SoftButton.vue","webpack:///./src/components/SoftButton.vue?dee0","webpack:///./src/components/SoftButton.vue","webpack:///./src/components/Configurator.vue?b445","webpack:///./src/components/CharacterPanel.vue?4a66","webpack:///./src/components/Icon/CustomerSupport.vue","webpack:///./src/components/CustomSelect.vue?d11b","webpack:///./src/Navbars/Sidenav/index.vue?dab6","webpack:///./src/components/CameraCard.vue?e959"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Vue","use","Vuex","Store","state","isLoggedIn","isAdmin","email","hideConfigButton","isPinned","showConfig","showCharacterPanel","showEnvironmentPanel","showSlidesPanel","showRecordingPanel","showCameraPanel","showEditorPanel","isTransparent","isRTL","color","isNavFixed","isAbsolute","showNavs","showSidenav","showNavbar","showFooter","showMain","experimental","showSkeleton","micVoulume","characters","environments","camera_motions","slides","cameras","navbarFixed","absolute","bootstrap","hasSlides","has3dEnvironment","mutations","closeAllPanels","toggleConfigurator","toggleCharacterPanel","toggleEnvironmentPanel","toggleSlidesPanel","toggleRecordingPanel","toggleCameraPanel","toggleEditorPanel","collapseAll","navbarMinimize","sidebarType","payload","setLoggedIn","val","cardBackground","toggleEveryDisplay","toggleHideConfig","actions","toggleSidebarColor","commit","setCardBackground","getters","prefix","iconName","width","height","aliases","unicode","svgPathData","definition","icon","faUnreal","ligatures","render","_vm","this","_h","$createElement","_c","_self","class","$store","attrs","_e","staticClass","staticStyle","on","logo","staticRenderFns","$event","showTooltip","pageX","pageY","hideTooltip","_v","customClass","scopedSlots","_u","fn","proxy","$route","params","project","_b","to","$attrs","_t","_s","navText","props","String","required","isExpanded","component","default","cardBg","onShowTooltip","onHideTooltip","mounted","title","controls","isActive","components","SidenavCollapse","Shop","CustomerSupport","Document","methods","mapMutations","getRoute","routeArr","path","split","evt","text","SidenavList","created","log","token","localStorage","getItem","getElementById","style","bottom","offsetHeight","posX","posY","titile","tooltip","innerHTML","left","top","opacity","computed","mapState","_m","toggle","onResetId","directives","rawName","expression","domProps","composing","room","connected","ConnectClick","onSkeleton","setExperimental","setMicVolume","micVal","onCalibrate","modifiers","model","callback","$$v","modal_con","ssid","wifi_pass","genQRCode","QRCode","require","fixedKey","mapActions","sidebarColor","querySelector","mcolor","engine_event","emit","micVolume","buffer","Uint8Array","profile","API","room_id","canvas","test","clientWidth","toCanvas","margin","myInit","headers","body","put","promiseResolve","loading","ifTransparent","sidenavResponsive","sidenavTypeOnResize","beforeMount","user","Auth","currentAuthenticatedUser","attributes","last_id","addListener","_l","char","index","setCharater","author","license","label","getSize","size","getClasses","shadow","circular","borderRadius","img","alt","Boolean","shadowValue","circularValue","borderRadiusValue","SoftAvatar","$router","ext","pop","file","watch","loader","$loading","show","container","$refs","loadingContainer","hide","env","setEnvironment","setCamera","selected_cam","getDevices","CustomSelect","video","srcObject","stop","streamHandler","navigator","mediaDevices","enumerateDevices","devices","video_devices","filter","kind","v","deviceId","catch","errorHandler","getUserMedia","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","load","stream","exact","ideal","frameRate","min","max","play","speed","setSlideSpeed","onSlide","ref","onFile","isDragging","onDrop","list","dragOptions","element","onSlideId","onDelete","draggable","enabled","dragging","slideFile","preventDefault","indexOf","oldIndex","newIndex","click","input","files","local_url","URL","createObjectURL","url","onCamera","onPlay","handle","$set","onActivate","cam","active","activate","onType","del","Math","round","fov","setFov","duration","setTime","time","onStartPin","onEndPin","Camera","constructor","CameraType","Fixed","start_transform","THREE","end_transform","lookAtTarget","camera","initCamera","delta","update","innerWidth","innerHeight","near","far","setFocalLength","position","set","lookAt","updateProjectionMatrix","setStart","copy","setEnd","setLookAtTarget","setActive","a","start_position","setFromMatrixPosition","end_position","start_rotation","setFromRotationMatrix","current_position","clone","current_rotation","rotation","multiplyScalar","add","_this$lookAtTarget","look_target","getWorldPosition","d1","distanceTo","d2","sub","normalize","lerp","serialize","output","toJSON","deserialize","json","parse","fromArray","elements","_defineProperty","Slider","Crane","$emit","matrix","CameraCard","onDummy","view_camera","getFocalLength","forEach","uuid","onUpdate","id","isRecording","onRec","playing","onRecId","Date","toISOString","onExport","CryptoJS","$dialog","alert","ciphertext","AES","encrypt","JSON","stringify","etag","obj","toString","price","credit","self","confirm","okText","cancelText","clip","item","Sidenav","Configurator","CharacterPanel","EnvironmentPanel","SlidesPanel","CameraPanel","RecordingPanel","x","matchMedia","myFunction","matches","navClasses","awsmobile","install","Amplify","configure","awsconfig","VuejsDialog","PulseLoader","library","faGooglePlay","faWindows","faUnity","faUser","faGear","faClose","faRightToBracket","faPerson","faPanorama","faImages","faAngleLeft","faAngleDown","faAngleUp","faRotate","faArrowsUpDownLeftRight","faCompress","faTrash","faPen","faFloppyDisk","faPause","faPlay","faStop","faClone","faVideo","faUpDown","faLocationPin","faLocationDot","faCircleDollarToSlot","faHourglassHalf","faClapperboard","faCloudArrowDown","faUserAstronaut","faBook","faTag","faRotateRight","faPuzzlePiece","faGlobe","faCameraRetro","faFaceLaugh","FontAwesomeIcon","VueRouter","VueSpinners","config","productionTip","Loading","BootstrapVue","IconsPlugin","mixin","logged","router","store","SoftUIDashboard","h","App","$mount","async","getCredentials","currentCredentials","getS3File","cache","with_etag","encoded_path","replace","credentials","signature","Signer","sign","method","access_key","accessKeyId","secret_key","secretAccessKey","session_token","sessionToken","region","service","fetch","eTag","blob","warn","getOS","userAgent","platform","macosPlatforms","windowsPlatforms","iosPlatforms","os","isFullscreen","webkitCurrentFullScreenElement","fullscreenElement","screen","globalThis","sleep","ms","Animator","fps","at","start","now","animate","func","requestAnimationFrame","mspf","elapsed","has_param","location","searchParams","has","get_param","clamp","mid","b","random","randomInt","floor","Array","ikRig","root_pos","root_rot","l_hand_rot","r_hand_rot","l_foot_rot","r_foot_rot","l_arm_direction","l_arm_pole","l_arm_len","r_arm_direction","r_arm_pole","r_arm_len","l_leg_direction","l_leg_pole","l_leg_len","r_leg_direction","r_leg_pole","r_leg_len","spine_direction","spine_pole","spine_len","neck_direction","neck_pole","neck_len","l_thumb_direction","l_thumb_len","r_thumb_direction","r_thumb_len","l_index_direction","l_index_len","r_index_direction","r_index_len","l_middle_direction","l_middle_len","r_middle_direction","r_middle_len","l_ring_direction","l_ring_len","r_ring_direction","r_ring_len","l_pinky_direction","l_pinky_len","r_pinky_direction","r_pinky_len","SourceSkeleton","bone_names","positions","bones","bone","parents","Hips","RightUpperLeg","RightLowerLeg","RightFoot","LeftUpperLeg","LeftLowerLeg","LeftFoot","Spine","Chest","UpperChest","Neck","Head","LeftShoulder","LeftUpperArm","LeftLowerArm","LeftHand","RightShoulder","RightUpperArm","RightLowerArm","RightHand","RightToes","LeftToes","RightThumbProximal","RightThumbIntermediate","RightThumbDistal","RightIndexProximal","RightIndexIntermediate","RightIndexDistal","RightMiddleProximal","RightMiddleIntermediate","RightMiddleDistal","RightRingProximal","RightRingIntermediate","RightRingDistal","RightLittleProximal","RightLittleIntermediate","RightLittleDistal","LeftThumbProximal","LeftThumbIntermediate","LeftThumbDistal","LeftIndexProximal","LeftIndexIntermediate","LeftIndexDistal","LeftMiddleProximal","LeftMiddleIntermediate","LeftMiddleDistal","LeftRingProximal","LeftRingIntermediate","LeftRingDistal","LeftLittleProximal","LeftLittleIntermediate","LeftLittleDistal","None","Hip","RHip","RKnee","RAnkle","LHip","LKnee","LAnkle","Spine1","Spine2","LShoulder","LArm","LForeArm","LWrist","RShoulder","RArm","RForeArm","RWrist","RToe","LToe","RightThumb1","RightThumb2","RightThumb3","RightThumb4","RightIndex1","RightIndex2","RightIndex3","RightIndex4","RightMiddle1","RightMiddle2","RightMiddle3","RightMiddle4","RightRing1","RightRing2","RightRing3","RightRing4","RightPinky1","RightPinky2","RightPinky3","RightPinky4","LeftThumb1","LeftThumb2","LeftThumb3","LeftThumb4","LeftIndex1","LeftIndex2","LeftIndex3","LeftIndex4","LeftMiddle1","LeftMiddle2","LeftMiddle3","LeftMiddle4","LeftRing1","LeftRing2","LeftRing3","LeftRing4","LeftPinky1","LeftPinky2","LeftPinky3","LeftPinky4","GeneralSkeleton","jdata","map","found","SkeletonLink","Label","child","getObjectByName","setRotationFromQuaternion","y","z","w","getBonesForMap","entries","bone_map","Wolf3DSkeleton","VRMSkeleton","vrm","ret","humanoid","getNormalizedBoneNode","getRawBoneNode","THREE_VRM","RightThumbMetacarpal","LeftThumbMetacarpal","Retargeter","source_bones","getBones","source_tpose_rotations","chains","ikRig_solved","ikRig_poles","scanBones","target_root","target_bones","tpose_rotations","target_hip_height","scene","_scanBones","parent","root_rotation_invert","getWorldQuaternion","invert","multiply","getHipHeight","manual","Root","HipMid","foot","setIKRig","ikrig","setRotations","rotations","_this$source_bones$i","setFromQuaternion","setTranslation","translation","lengths","solveIKChain","direction","pole","root","middle","end","rotation_offset","end_rotation","_this$target_bones$ro","_this$target_bones$ro2","_this$target_bones$ro3","_this$target_bones$mi","_this$target_bones$mi2","_this$target_bones$mi3","_this$target_bones$mi4","_this$target_bones$mi5","_this$target_bones$mi6","_this$target_bones$en","_this$target_bones$en2","_this$target_bones$en3","applyQuaternion","target_chain_root","target_chain_mid","target_chain_end","src_chain_len","target_chain_len","chain_ratio","dir","end_effector","hand_ratio","mirror_chain_start","mirrorMap","target_mirror_chain_len","end_effector_mirror","src_end_effector_mirror","rchain_ratio","lchain_ratio","target_armlen","desired_target_hand_distance","current_target_hand_distance","hand_error","chain_dir_l","hip_l_len","ankle_l_len","solve2Bones","lHip_rot","upper","lAnkle_rot","lower","parent_global_rotation","q","q2","wrist","twist","cross","slerp","lookRotation","solveFingerIKChain","bone_chain","_this$target_bones$bo","_this$target_bones$bo2","_this$target_bones$bo3","rot","qrot","sections","finger_tip","sqrt","abs","distanceToSquared","pole_vector","sampleParabola","_this$target_bones$bo4","_this$target_bones$bo5","_this$target_bones$bo6","_this$target_bones$bo7","_this$target_bones$bo8","_this$target_bones$bo9","solveSourceIKChain","_this$source_bones$ro","_this$source_bones$ro2","_this$source_bones$ro3","_this$source_bones$mi","_this$source_bones$mi2","_this$source_bones$mi3","_this$source_bones$mi4","_this$source_bones$mi5","_this$source_bones$mi6","_this$source_bones$en","_this$source_bones$en2","_this$source_bones$en3","solveSourceFingerIKChain","_this$source_bones$bo","_this$source_bones$bo2","_this$source_bones$bo3","_this$source_bones$bo4","_this$source_bones$bo5","_this$source_bones$bo6","_this$source_bones$bo7","_this$source_bones$bo8","_this$source_bones$bo9","effector","hip_length","ankle_length","condition","f_dir","projectPointOnPlane","mat","vec1","vec2","up","mat2","crossVectors","eye","outDirection","parabolicT","travelDirection","planeNormal","planePoint","point","distance","dot","translationVector","_this$target_bones$","_this$target_bones$$p","_this$target_bones$2","target_height","source_height","hip_scale","target_root_scale","setFromMatrixScale","matrixWorld","parent_transform_invert","hips_pos","divide","applyMatrix4","setFromEuler","degToRad","left_finger_pole","left_index_pole","vp_bone_map","left_middle_pole","left_ring_pole","left_pinky_pole","left_thumb_pole","right_finger_pole","right_index_pole","right_middle_pole","right_ring_pole","right_pinky_pole","right_thumb_pole","pos","_this$target_bones$i","_this$target_bones$i$","_this$target_bones$i2","BitsConsumer","buf","offset","consume","bits","signed","num","Parser","typeTable","parseTable","pow","view","DataView","getFloat32","floats","Float32Array","DeserializeQ","Int16Array","Uint16Array","model_id","BigUint64Array","num_joints","lens","arr","_Parser","parseRotationFrame","parseTranslationFrame","parseMorphFrame","parseCalibFrame","parseMicFrame","parseIKRig","SignalingClient","super","socket","addEventListener","dispatchEvent","close","login","apiversion","utils","WebSocket","onmessage","msg","req_type","onopen","onclose","signal","s_name","send","updateBandwidthRestriction","desc","sdp","ASstr","chrome","includes","RegExp","start_bitrate","min_bitrate","max_bitrate","setting","replaceAll","PeerConnection","peer","turn","ICE_config","urls","iceServers","concat","optional","googCpuOveruseDetection","pc","RTCPeerConnection","onnegotiationneeded","isHost","addTransceiver","ontrack","delay","receiver","getReceivers","playoutDelayHint","oniceconnectionstatechange","iceConnectionState","onicecandidate","candidate","r_name","ondatachannel","dataChannel","channel","initChannel","createDataChannel","closeChannel","keys","startsWith","offer","createOffer","setLocalDescription","onSetLocalDescription","setRemoteDescription","answer","createAnswer","localDescription","onCandidate","addIceCandidate","RTCIceCandidate","binaryType","readyState","sendJSON","addStream","getTracks","track","addTrack","Client","pcs","getPC","isConnected","values","connect","onAnswer","onOffer","emitter","EventEmitter","MediaStreamRecorder","WS_URL","getKeyByValue","find","getDateString","dateObj","year","getFullYear","month","getMonth","date","getDate","hour","getHours","minute","getMinutes","second","getSeconds","string_hash","str","chr","hash","charCodeAt","Engine","sizes","current_model","current_model_url","current_json_url","current_animated_clip","current_animated_object","current_animated_object_url","current_environment","current_environment_urls","current_3d_environments","current_3d_environment_urls","current_environment_name","current_character_name","renderer","audio","lightProbe","morphs","recording_morphs","clock","animator","em","current_project","loaded_environments","loaded_characters","loaded_bones","loaded_morphs","retargeter","animation","camera_motion_object","client","skeleton","hemiLight","dirLight","ground","wrists","skeleton_geometry","ikRig_chains","boneContainer","camera_index","slide_urls","slide_id","fps_time","fps_frames","slide_speed","slide_delay","mouse_down","mouseX","mouseY","rotation_gizmo","translation_gizmo","raycaster","gizmos","gizmo_mode","scripts","recording","recording_list","rec_id","mediaRecorder","audioDataArray","initRenderer","defaultCamera","viewportCamera","initScene","initControls","onWindowResize","orientation","loadVRM","loadCharacter","remove","load3DEnvironment","loadAnimatedModel","loadEnvironment","onLoadSlides","local","onLoadSlide","loadAnimation","loadCameraMotion","rotateCharacter","disableBackground","ToggleStats","visible","ikRigSkeleton","ikRigSkeletonSolved","ikRigPoles","setStage","initStats","track_user","rec_time","mixer","stopAllAction","idle","clipAction","default_animation","onCameraMotion","saveProject","setSize","aspect","strMime","domElement","toDataURL","clientHeight","loadProject","temp","temp2","tracks","mr","export_skeleton_position","export_skeleton_times","export_skeleton_rotations","export_skeleton_morphs","_rawHumanBones","morph_map","Map","getRawBones","springBoneManager","_objectSpringBonesMap","expressionManager","_expressions","_binds","primitives","primitive","morph","traverse","uid","quaternion","bb","morphTargetInfluences","_self$morphs$bb","_self$morphs$b","weight","updateVrmMorph","positionKF","quaternionKF","morphsKF","animations","wav","Blob","exportCharacter","rec","recording_skeleton_position","recording_skeleton_rotations","recording_skeleton_morphs","recording_skeleton_times","names","getNames","audioData","ondataavailable","audio_replay","audioURL","loop","oncanplay","pause","lastTime","endTime","timeDiff","seconds","streams","mimeType","mic","addScript","removeScript","char_name","dispose","background","targetObject","vertices","vertices2","vertices3","vertices4","colors","colors2","colors3","colors4","color1","color2","color3","color4","g","skel_material","vertexColors","depthTest","depthWrite","toneMapped","transparent","linewidth","castShadow","mapSize","right","bias","PI","receiveShadow","grid","material","geometry","material2","left_cube","right_cube","left_knee","right_knee","helper_root","helper_root2","renderOrder","lHelperFoot","rHelperFoot","lHelperKnee","rHelperKnee","rHelperRoot","rHelperRoot2","onMouseMove","engine","mouseDown","deltaX","clientX","clientY","mouse","setFromCamera","intersect","intersectObject","intersection_ground","updateMatrix","onMouseDown","intersects","intersectObjects","onMouseUp","OrbitControls","side","plane_geometry","plane_material","antialias","alpha","preserveDrawingBuffer","cssText","setPixelRatio","devicePixelRatio","shadowMap","outputEncoding","lightProbeIntensity","directionalLightIntensity","envMapIntensity","resizeObserver","ResizeObserver","entry","contentRect","observe","onFullScreenChange","getDelta","needsUpdate","anim_mixer","camera_mixer","_self$morphs$bb2","_self$morphs$b2","setXYZ","stats","hidden","GLTFLoader","loacal_url","aws_helper","loadAsync","isMesh","current_animated_model","playAnimation","exporter","GLTFExporter","options","binary","includeCustomExtensions","frustumCulled","userData","gltfExtensions","uniforms","alphaTest","ArrayBuffer","archiveContent","arrayBuffer","zipped","zipSync","level","saveAs","jsonString","jname","local_json_url","jd","BlendshapeLink","blendshape","full_name","weights","k","MorphTargets","spl","Name","scale","Scale","body2","isWolf3D","morphTargetDictionary","has_morph_name","isNaN","parseFloat","morph_name","fromFBX","parseInt","metalness","Metalness","roughness","Roughness","skinning","morphTargets","Material","DoubleFace","envMap","setValue","VRMExpressionPresetName","Aa","Ee","Ih","Oh","Ou","Blink","Relaxed","Sad","Angry","Surprised","BlinkLeft","BlinkRight","LookUp","LookDown","LookLeft","LookRight","Happy","u","flipY","_vrm$meta","vrm_loader","register","parser","VRMLoaderPlugin","crossOrigin","gltf","meta","metaVersion","manager","LoadingManager","children","fill","local_urls","cubeTexture","encoding","findCharacterURL","charater_list","findEnvironmentURL","environment_list","metadata","character_url","environment","enviroments_3d","animated_object","recordings","proj","matrixAutoUpdate","decompose","stage_name","Stages","current_character","OnLaunch","OnDesktop","VideoBackground","SoftButton","routes","redirect","beforeEnter","checkLogged","Editor","guardLogged","skipLogged","checkAdminRights","open","from","next","userIsAdmin","refreshTokensWithCognitoSdk","refreshTokenString","userPool","clientId","Username","Pool","cognitoUser","CognitoUser","refreshToken","CognitoRefreshToken","RefreshToken","session","refreshSession","idToken","getIdToken","getJwtToken","accessToken","getAccessToken","newRefreshToken","getRefreshToken","getToken","base","process","linkActiveClass","linkExactActiveClass","preRenderFunction","beforeEach","tabindex","attribute","selected","selectHide","option","Number","updated","variant","fullWidth","clicked","colorValue","sizeValue","fullWidthValue","activeValue"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,MAAQ,QAAQ,OAAS,SAAS,QAAU,UAAU,SAAW,WAAW,OAAS,UAAU9B,IAAUA,GAAW,IAAM,CAAC,MAAQ,WAAW,OAAS,WAAW,QAAU,WAAW,SAAW,WAAW,OAAS,YAAYA,GAAW,MAIvR,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,MAAQ,EAAE,OAAS,EAAE,QAAU,EAAE,SAAW,EAAE,OAAS,GACrER,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,MAAQ,QAAQ,OAAS,SAAS,QAAU,UAAU,SAAW,WAAW,OAAS,UAAUxC,IAAUA,GAAW,IAAM,CAAC,MAAQ,WAAW,OAAS,WAAW,QAAU,WAAW,SAAW,WAAW,OAAS,YAAYA,GAAW,OAC/PyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,+FC1QT,W,sDCAA,yBAAwW,eAAG,G,2DCA3W,W,kCCAA,iDAGA+F,aAAIC,IAAIC,QAGO,WAAIA,OAAKC,MAAM,CAC5BC,MAAO,CACLC,YAAY,EACZC,SAAS,EACTC,WAAOtC,EACPuC,kBAAkB,EAClBC,UAAU,EACVC,YAAY,EACZC,oBAAoB,EACpBC,sBAAsB,EACtBC,iBAAiB,EACjBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,cAAe,GACfC,OAAO,EACPC,MAAO,GACPC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,cAAc,EACdC,cAAc,EACdC,WAAY,IACZC,WAAY,GACZC,aAAc,GACdC,eAAgB,GAChBC,OAAQ,GACRC,QAAS,GACTC,YACE,4EACFC,SAAU,8CACVC,cACAC,WAAW,EACXC,kBAAkB,GAEpBC,UAAW,CACTC,eAAerC,GAEbA,EAAMM,YAAa,EACnBN,EAAMO,oBAAqB,EAC3BP,EAAMQ,sBAAuB,EAC7BR,EAAMS,iBAAkB,EACxBT,EAAMW,iBAAkB,EACxBX,EAAMU,oBAAqB,GAE7B4B,mBAAmBtC,GACjBA,EAAMM,YAAcN,EAAMM,WACL,GAAlBN,EAAMM,aAEPN,EAAMO,oBAAqB,EAC3BP,EAAMQ,sBAAuB,EAC7BR,EAAMS,iBAAkB,EACxBT,EAAMW,iBAAkB,EACxBX,EAAMU,oBAAqB,IAG/B6B,qBAAqBvC,GACnBA,EAAMO,oBAAsBP,EAAMO,mBACH,GAA5BP,EAAMO,qBAEPP,EAAMM,YAAa,EACnBN,EAAMQ,sBAAuB,EAC7BR,EAAMS,iBAAkB,EACxBT,EAAMW,iBAAkB,EACxBX,EAAMU,oBAAqB,IAG/B8B,uBAAuBxC,GACrBA,EAAMQ,sBAAwBR,EAAMQ,qBACH,GAA9BR,EAAMQ,uBAEPR,EAAMM,YAAa,EACnBN,EAAMO,oBAAqB,EAC3BP,EAAMS,iBAAkB,EACxBT,EAAMW,iBAAkB,EACxBX,EAAMU,oBAAqB,IAG/B+B,kBAAkBzC,GAChBA,EAAMS,iBAAmBT,EAAMS,gBACH,GAAzBT,EAAMS,kBAEPT,EAAMM,YAAa,EACnBN,EAAMO,oBAAqB,EAC3BP,EAAMQ,sBAAuB,EAC7BR,EAAMW,iBAAkB,EACxBX,EAAMU,oBAAqB,IAG/BgC,qBAAqB1C,GACnBA,EAAMU,oBAAsBV,EAAMU,mBACH,GAA5BV,EAAMU,qBAEPV,EAAMM,YAAa,EACnBN,EAAMO,oBAAqB,EAC3BP,EAAMQ,sBAAuB,EAC7BR,EAAMW,iBAAkB,EACxBX,EAAMS,iBAAkB,IAG5BkC,kBAAkB3C,GAChBA,EAAMW,iBAAmBX,EAAMW,gBACH,GAAzBX,EAAMW,kBAEPX,EAAMM,YAAa,EACnBN,EAAMO,oBAAqB,EAC3BP,EAAMQ,sBAAuB,EAC7BR,EAAMS,iBAAkB,EACxBT,EAAMU,oBAAqB,IAG/BkC,kBAAkB5C,GAEhBA,EAAMY,iBAAmBZ,EAAMY,iBAEjCiC,YAAY7C,GACVA,EAAMmB,aAAc,EACpBnB,EAAMS,iBAAkB,EACxBT,EAAMW,iBAAkB,EACxBX,EAAMM,YAAa,EACnBN,EAAMO,oBAAqB,EAC3BP,EAAMQ,sBAAuB,EAC7BR,EAAMY,iBAAkB,EACxBZ,EAAMU,oBAAqB,GAI7BoC,eAAe9C,GACbA,EAAMmB,aAAc,GAgBtB4B,YAAY/C,EAAOgD,GACjBhD,EAAMa,cAAgBmC,GAExBC,YAAYjD,EAAOkD,GACjBlD,EAAMC,WAAaiD,GAErBC,eAAenD,EAAOgD,GACpBhD,EAAMe,MAAQiC,GAEhBjB,YAAY/B,KAQZoB,WAAWpB,GAETA,EAAMoB,YAAa,EACnBpB,EAAMmB,aAAc,GAGtBiC,mBAAmBpD,GAEjBA,EAAMmB,aAAenB,EAAMmB,YAC3BnB,EAAMqB,YAAcrB,EAAMqB,YAE5BgC,iBAAiBrD,GACfA,EAAMI,kBAAoBJ,EAAMI,mBAGpCkD,QAAS,CACPC,oBAAmB,OAAEC,GAAUR,GAC7BQ,EAAO,cAAeR,IAExBS,mBAAkB,OAAED,GAAUR,GAC5BQ,EAAO,iBAAkBR,KAG7BU,QAAS,M,kCCjMXxK,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,IACtD,IAAIgF,EAAS,MACTC,EAAW,SACXC,EAAO,GACPC,EAAQ,GACRC,EAAU,GACVC,EAAU,OACVC,EAAc,2vCAElBvJ,EAAQwJ,WAAa,CACnBP,OAAQA,EACRC,SAAUA,EACVO,KAAM,CACJN,EACAC,EACAC,EACAC,EACAC,IAGJvJ,EAAQ0J,SAAW1J,EAAQwJ,WAC3BxJ,EAAQiJ,OAASA,EACjBjJ,EAAQkJ,SAAWA,EACnBlJ,EAAQmJ,MAAQA,EAChBnJ,EAAQoJ,OAASA,EACjBpJ,EAAQ2J,UAAYN,EACpBrJ,EAAQsJ,QAAUA,EAClBtJ,EAAQuJ,YAAcA,EACtBvJ,EAAQqJ,QAAUA,G,uEC7BdO,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACE,MAAM,CAC7HL,KAAKM,OAAO9E,MAAMM,WAAa,OAAS,IAAKyE,MAAM,CAAC,OAASR,EAAIjC,sBAAsBqC,EAAG,kBAAkB,CAACE,MAAM,CACnHL,KAAKM,OAAO9E,MAAMO,mBAAqB,OAAS,IAAKwE,MAAM,CAAC,OAASR,EAAIhC,wBAAwBoC,EAAG,oBAAoB,CAACE,MAAM,CAC/HL,KAAKM,OAAO9E,MAAMQ,qBAAuB,OAAS,IAAKuE,MAAM,CAAC,OAASR,EAAI/B,0BAA0BmC,EAAG,eAAe,CAACE,MAAM,CAC9HL,KAAKM,OAAO9E,MAAMS,gBAAkB,OAAS,IAAKsE,MAAM,CAAC,OAASR,EAAI9B,qBAAqBkC,EAAG,eAAe,CAACE,MAAM,CACpHL,KAAKM,OAAO9E,MAAMW,gBAAkB,OAAS,IAAKoE,MAAM,CAAC,OAASR,EAAI5B,qBAAqBgC,EAAG,kBAAkB,CAACE,MAAM,CACvHL,KAAKM,OAAO9E,MAAMU,mBAAqB,OAAS,IAAKqE,MAAM,CAAC,OAASR,EAAI7B,wBAAyB8B,KAAKM,OAAO9E,MAAMmB,aAAaqD,KAAKM,OAAO9E,MAAMkB,SAAUyD,EAAG,UAAU,CAACI,MAAM,CAAC,UAAU,2DAA2DR,EAAIS,KAAMR,KAAKM,OAAO9E,MAAc,SAAE2E,EAAG,MAAM,CAAGH,KAAKM,OAAO9E,MAAMmB,YAA0ZoD,EAAIS,KAAjZL,EAAG,MAAM,CAACM,YAAY,eAAeC,YAAY,CAAC,SAAW,WAAW,IAAM,IAAI,KAAO,IAAI,UAAU,KAAK,OAAS,SAAS,CAACP,EAAG,IAAI,CAACM,YAAY,2CAA2CC,YAAY,CAAC,mBAAmB,yBAAyBC,GAAG,CAAC,MAAQZ,EAAInD,aAAa,CAACuD,EAAG,MAAM,CAACM,YAAY,wBAAwBF,MAAM,CAAC,IAAMR,EAAIa,KAAK,MAAQ,KAAK,OAAS,KAAK,IAAM,qBAA8Bb,EAAIS,KAAKL,EAAG,OAAO,CAACM,YAAY,4EAA4E,CAACN,EAAG,gBAAgB,IAAI,IACt2BU,EAAkB,GCPlB,EAAS,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACO,YAAY,CAAC,QAAU,UAAU,CAACP,EAAG,MAAM,CAACM,YAAY,OAAOC,YAAY,CAAC,SAAW,WAAW,KAAO,QAAQ,IAAM,IAAI,UAAU,OAAOH,MAAM,CAAC,GAAK,aAAaJ,EAAG,QAAQ,CAACM,YAAY,oGAAoGJ,MAAMN,EAAIzD,MAAQ,oBAAsB,OAAOoE,YAAY,CAAC,aAAa,qBAAqBH,MAAM,CAAC,GAAK,iBAAiB,CAACJ,EAAG,MAAM,CAACM,YAAY,mBAAmBC,YAAY,CAAC,cAAc,QAAQC,GAAG,CAAC,MAAQZ,EAAI1B,cAAc,CAAC8B,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,6BAA6B,KAAKJ,EAAG,MAAMA,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,IAAI,CAACM,YAAY,0GAA0GF,MAAM,CAAC,cAAc,OAAO,GAAK,iBAAiBJ,EAAG,IAAI,CAACM,YAAY,mBAAmBF,MAAM,CAAC,KAAO,KAAKI,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAOE,MAAMF,EAAOG,MAAM,SAAS,WAAalB,EAAImB,cAAc,CAACf,EAAG,MAAM,CAACM,YAAY,yBAAyBF,MAAM,CAAC,IAAMR,EAAIa,KAAK,IAAM,eAAeT,EAAG,OAAO,CAACM,YAAY,yBAAyB,CAACV,EAAIoB,GAAG,QAAQhB,EAAG,OAAO,CAACM,YAAY,OAAOC,YAAY,CAAC,iBAAiB,cAAc,YAAY,SAAS,CAACX,EAAIoB,GAAG,cAAchB,EAAG,KAAK,CAACM,YAAY,yBAAyBN,EAAG,eAAe,CAACI,MAAM,CAAC,GAAK,UAAU,OAASR,EAAIqB,YAAY,cAAgBrB,EAAIgB,YAAY,cAAgBhB,EAAImB,eAAef,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,IAAI,CAACM,YAAY,oDAAoDC,YAAY,CAAC,KAAO,iBAAiB,OAAS,mBAAmB,SAAW,qBAAqB,QAAU,aAAa,gBAAgB,eAAeH,MAAM,CAAC,GAAK,QAAQI,GAAG,CAAC,MAAQZ,EAAIjC,mBAAmB,UAAY,SAASgD,GAAQ,OAAOf,EAAIgB,YAAYD,EAAOE,MAAMF,EAAOG,MAAM,aAAa,WAAalB,EAAImB,cAAc,CAACf,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,sBAAsBJ,EAAG,IAAI,CAACM,YAAY,oBAAoB,MAAM,MACnoE,EAAkB,GCDlB,EAAS,WAAa,IAAIV,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mCAAmCC,YAAY,CAAC,QAAU,cAAcH,MAAM,CAAC,GAAK,0BAA0B,CAACJ,EAAG,KAAK,CAACM,YAAY,eAAe,CAAET,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,aAAa,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,WAAW,GAAK,CAAEnH,KAAM,aAAciI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,UAAUqB,OAAM,IAAO,MAAK,EAAM,eAAe,GAAGzB,EAAIS,KAAMR,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,YAAY,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,UAAU,GAAK,CAAEnH,KAAM,YAAaiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,sBAAsBqB,OAAM,IAAO,MAAK,EAAM,eAAe,GAAGzB,EAAIS,KAAOR,KAAKM,OAAO9E,MAAMC,WAAiVsE,EAAIS,KAAzUL,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,YAAY,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,UAAU,GAAK,CAAEnH,KAAM,UAAWiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,cAAcqB,OAAM,IAAO,MAAK,EAAM,cAAc,GAAYrB,EAAG,KAAK,CAACM,YAAY,qBAAqBE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,YAAY,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,UAAU,GAAK,CAAEnH,KAAM,YAAaiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,uBAAuBiB,OAAM,QAAW,GAAGrB,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,SAAS,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,OAAO,GAAK,CAAEnH,KAAM,SAAUiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwBiB,OAAM,QAAW,GAAsB,UAAlBxB,KAAKyB,OAAOrI,KAAgB+G,EAAG,MAAM,CAACA,EAAG,MAAMA,EAAG,KAAK,CAACM,YAAY,yBAAyBN,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,MAAQZ,EAAIhC,qBAAqB,UAAY,SAAS+C,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,eAAe,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,aAAa,GAAK,CAAEnH,KAAM,KAAMiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,0BAA0BiB,OAAM,IAAO,MAAK,EAAM,eAAe,GAAGrB,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,MAAQZ,EAAI/B,uBAAuB,UAAY,SAAS8C,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,iBAAiB,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,eAAe,GAAK,CAAEnH,KAAM,KAAMiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,4BAA4BiB,OAAM,IAAO,MAAK,EAAM,cAAc,KAAKzB,EAAIS,KAAwB,UAAlBR,KAAKyB,OAAOrI,MAA+C,SAA5B4G,KAAKyB,OAAOC,OAAOC,SAAkD,GAA7B3B,KAAKM,OAAO9E,MAAMkC,UAAiByC,EAAG,MAAM,CAACQ,GAAG,CAAC,MAAQZ,EAAI9B,oBAAoB,CAACkC,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,WAAW,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,SAAS,GAAK,CAAEnH,KAAM,KAAMiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,0BAA0BiB,OAAM,IAAO,MAAK,EAAM,eAAe,KAAKzB,EAAIS,KAAwB,UAAlBR,KAAKyB,OAAOrI,MAA+C,SAA5B4G,KAAKyB,OAAOC,OAAOC,SAAyD,GAApC3B,KAAKM,OAAO9E,MAAMmC,iBAAwBwC,EAAG,MAAM,CAACQ,GAAG,CAAC,MAAQZ,EAAI5B,oBAAoB,CAACgC,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,WAAW,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,SAAS,GAAK,CAAEnH,KAAM,KAAMiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,yBAAyBiB,OAAM,IAAO,MAAK,EAAM,cAAc,KAAKzB,EAAIS,KAAwB,UAAlBR,KAAKyB,OAAOrI,KAAgB+G,EAAG,MAAM,CAACQ,GAAG,CAAC,MAAQZ,EAAI7B,uBAAuB,CAACiC,EAAG,KAAK,CAACM,YAAY,WAAWE,GAAG,CAAC,UAAY,SAASG,GAAQ,OAAOf,EAAIgB,YAAYD,EAAO,cAAc,WAAaf,EAAImB,cAAc,CAACf,EAAG,mBAAmB,CAACI,MAAM,CAAC,QAAU,YAAY,GAAK,CAAEnH,KAAM,KAAMiI,YAAYtB,EAAIuB,GAAG,CAAC,CAAC7G,IAAI,OAAO8G,GAAG,WAAW,MAAO,CAACpB,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,gCAAgCiB,OAAM,IAAO,MAAK,EAAM,eAAe,KAAKzB,EAAIS,UACj7I,EAAkB,GCDlB,EAAS,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAcJ,EAAI6B,GAAG,CAACnB,YAAY,WAAWF,MAAM,CAAC,GAAKR,EAAI8B,GAAG,eAAe,WAAW,cAAc9B,EAAI+B,QAAO,GAAO,CAAC3B,EAAG,MAAM,CAACM,YAAY,wHAAwHJ,MAAML,KAAKM,OAAO9E,MAAMc,MAAQ,QAAU,QAAQ,CAACyD,EAAIgC,GAAG,SAAS,GAAG5B,EAAG,OAAO,CAACM,YAAY,gBAAgBJ,MAAML,KAAKM,OAAO9E,MAAMc,MAAQ,QAAU,QAAQ,CAACyD,EAAIoB,GAAGpB,EAAIiC,GAAGjC,EAAIkC,eAC1hB,EAAkB,GCeP,GACf7I,KAAA,mBACA8I,MAAA,CACAL,GAAA,CACAtK,KAAA,CAAA7C,OAAAyN,QACAC,UAAA,GAEAH,QAAA,CACA1K,KAAA4K,OACAC,UAAA,IAGAnO,OACA,OACAoO,YAAA,KC9BwW,I,YCOpWC,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAIvC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,OAAO,OAAS,OAAO,QAAU,YAAY,QAAU,MAAM,MAAQ,6BAA6B,cAAc,iCAAiC,CAACJ,EAAG,QAAQ,CAACJ,EAAIoB,GAAG,UAAUhB,EAAG,IAAI,CAACI,MAAM,CAAC,OAAS,OAAO,eAAe,IAAI,KAAO,OAAO,YAAY,YAAY,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,uCAAuC,KAAO,UAAU,YAAY,YAAY,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,uCAAuC,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,oCAAoC,CAACJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,uvBAAuvB,QAAU,iBAAiBJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,42BACx+C,EAAkB,GCiCP,GACf2B,MAAA,CACA3F,MAAA,CACAhF,KAAA4K,OACAI,QAAA,MCtC6V,ICOzV,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,oBClBX,EAAS,WAAa,IAAIxC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQR,EAAIV,MAAM,OAASU,EAAIT,OAAO,QAAU,YAAY,QAAU,MAAM,MAAQ,6BAA6B,cAAc,iCAAiC,CAACa,EAAG,QAAQ,CAACJ,EAAIoB,GAAG,cAAchB,EAAG,IAAI,CAACI,MAAM,CAAC,OAAS,OAAO,eAAe,IAAI,KAAO,OAAO,YAAY,YAAY,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,uCAAuC,KAAO,UAAU,YAAY,YAAY,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,uCAAuC,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,sCAAsC,CAACJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,sJAAsJ,QAAU,iBAAiBJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,srBACp5B,EAAkB,GCkCP,GACf2B,MAAA,CACA5C,OAAA,CACA/H,KAAA4K,OACAI,QAAA,QAEAlD,MAAA,CACA9H,KAAA4K,OACAI,QAAA,UC3CiW,ICO7V,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QC6HA,GACfnJ,KAAA,cACA8I,MAAA,CACAM,OAAAL,OACAM,cAAA,CACAL,UAAA,GAEAM,cAAA,CACAN,UAAA,IAGAO,YAIA1O,OACA,OACA2O,MAAA,cACAC,SAAA,qBACAC,SAAA,WAGAC,WAAA,CACAC,kBAEAC,OAIAC,6BACAC,YAIAC,QAAA,IACAC,eAAA,wJACAC,WACA,MAAAC,EAAA,KAAA9B,OAAA+B,KAAAC,MAAA,KACA,OAAAF,EAAA,IAEAxC,YAAA2C,EAAAC,QAEAtK,GAAA,KAAAoJ,eACA,KAAAA,cAAAiB,EAAA1C,MAAA0C,EAAAzC,MAAA0C,IAGAzC,mBACA7H,GAAA,KAAAqJ,eACA,KAAAA,mBC/LoW,ICQhW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,6BCoCA,GACftJ,KAAA,QACA2J,WAAA,CACAa,eAEAC,QAAA,aAIA5P,OACA,OACA2M,WAGAsB,MAAA,CACAd,YAAA,CACA7J,KAAA4K,OACAI,QAAA,KAGAI,UACA5H,QAAA+I,IAAA,WACA,MAAAC,EAAAC,aAAAC,QAAA,aACAtI,EAAAqI,aAAAC,QAAA,aACAlJ,QAAA+I,IAAA,SAAAC,GACAhJ,QAAA+I,IAAA,SAAAnI,GAEA7E,SAAAoN,eAAA,QAAAC,MAAAC,SAAAtN,SAAAoN,eAAA,gBAAAG,aAAAvN,SAAAoN,eAAA,WAAAG,cAAA,QAGAjB,QAAA,IACAC,eAAA,sCACAtC,YAAAuD,EAAAC,EAAAC,GAEA,IAAAC,EAAA3N,SAAAoN,eAAA,WACAO,EAAAC,UAAAF,EAEAC,EAAAN,MAAAQ,KAAAL,EAAA,QACAG,EAAAN,MAAAS,IAAAL,EAAA,QACAE,EAAAN,MAAAU,QAAA,KAEA3D,cAEA,IAAAuD,EAAA3N,SAAAoN,eAAA,WAEAO,EAAAN,MAAAU,QAAA,MAIAC,SAAA,IACAC,eAAA,aCzG8V,ICQ1V,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIhF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,YAAYC,YAAY,CAAC,SAAW,oBAAoB,CAACP,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAACV,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,iBAAiBE,GAAG,CAAC,MAAQZ,EAAIkF,SAAS,CAAC9E,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,OAAOJ,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAAET,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,MAAM,CAACJ,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,UAAU,CAACN,EAAG,IAAI,CAACO,YAAY,CAAC,OAAS,UAAU,cAAc,MAAM,aAAa,QAAQC,GAAG,CAAC,WAAa,SAASG,GAAQ,OAAOf,EAAImF,aAAa,MAAQ,SAASpE,GAAQ,OAAOf,EAAImF,eAAe,CAAC/E,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,+BAA+B,GAAGJ,EAAG,QAAQ,CAACgF,WAAW,CAAC,CAAC/L,KAAK,QAAQgM,QAAQ,UAAUjL,MAAO4F,EAAQ,KAAEsF,WAAW,SAAS5E,YAAY,oCAAoCF,MAAM,CAAC,KAAO,SAAS,YAAc,WAAW+E,SAAS,CAAC,MAASvF,EAAQ,MAAGY,GAAG,CAAC,MAAQ,SAASG,GAAWA,EAAOlJ,OAAO2N,YAAqBxF,EAAIyF,KAAK1E,EAAOlJ,OAAOuC,WAAUgG,EAAG,SAAS,CAACM,YAAY,4BAA4BJ,MAAM,CAACN,EAAI0F,UAAY,SAAW,GAAI1F,EAAI0F,UAAY,qBAAuB,uBAAuBlF,MAAM,CAAC,GAAK,aAAaI,GAAG,CAAC,MAAQZ,EAAI2F,eAAe,CAAG3F,EAAI0F,UAAuCtF,EAAG,IAAI,CAACJ,EAAIoB,GAAG,gBAA3ChB,EAAG,IAAI,CAACJ,EAAIoB,GAAG,iBAAgDhB,EAAG,IAAI,CAACM,YAAY,kCAAkC,CAACV,EAAIoB,GAAG,6DAA6DpB,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,+BAA+B,CAACN,EAAG,QAAQ,CAACM,YAAY,wBAAwBJ,MAAML,KAAKM,OAAO9E,MAAMc,MAAQ,qBAAuB,WAAWiE,MAAM,CAAC,KAAO,WAAW,GAAK,eAAe+E,SAAS,CAAC,QAAUtF,KAAKM,OAAO9E,MAAMwB,cAAc2D,GAAG,CAAC,OAASZ,EAAI4F,gBAAgB5F,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,+BAA+B,CAACN,EAAG,QAAQ,CAACM,YAAY,wBAAwBJ,MAAML,KAAKM,OAAO9E,MAAMc,MAAQ,qBAAuB,WAAWiE,MAAM,CAAC,KAAO,WAAW,GAAK,sBAAsB+E,SAAS,CAAC,QAAUtF,KAAKM,OAAO9E,MAAMuB,cAAc4D,GAAG,CAAC,OAASZ,EAAI6F,qBAAqB7F,EAAIiF,GAAG,GAAG7E,EAAG,QAAQ,CAACgF,WAAW,CAAC,CAAC/L,KAAK,QAAQgM,QAAQ,UAAUjL,MAAO4F,EAAU,OAAEsF,WAAW,WAAW5E,YAAY,QAAQF,MAAM,CAAC,KAAO,QAAQ,IAAM,IAAI,IAAM,MAAM,MAAQ,KAAK+E,SAAS,CAAC,MAASvF,EAAU,QAAGY,GAAG,CAAC,QAAUZ,EAAI8F,aAAa,SAAW9F,EAAI8F,aAAa,IAAM,SAAS/E,GAAQf,EAAI+F,OAAOhF,EAAOlJ,OAAOuC,UAAUgG,EAAG,KAAK,CAACM,YAAY,4BAA4BN,EAAG,IAAI,CAACM,YAAY,6BAA6BE,GAAG,CAAC,MAAQZ,EAAIgG,cAAc,CAAChG,EAAIoB,GAAG,wBAAwBpB,EAAIS,KAAKL,EAAG,IAAI,CAACgF,WAAW,CAAC,CAAC/L,KAAK,UAAUgM,QAAQ,oBAAoBY,UAAU,CAAC,WAAU,KAAQvF,YAAY,8BAA8B,CAACV,EAAIoB,GAAG,oBAAoBhB,EAAG,UAAU,CAACI,MAAM,CAAC,GAAK,UAAU,MAAQ,2EAA2E,cAAc,IAAI0F,MAAM,CAAC9L,MAAO4F,EAAa,UAAEmG,SAAS,SAAUC,GAAMpG,EAAIqG,UAAUD,GAAKd,WAAW,cAAc,CAAClF,EAAG,SAAS,CAACM,YAAY,SAASF,MAAM,CAAC,GAAK,YAAYJ,EAAG,MAAM,CAACO,YAAY,CAAC,OAAS,OAAOH,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,QAAQ,CAACgF,WAAW,CAAC,CAAC/L,KAAK,QAAQgM,QAAQ,UAAUjL,MAAO4F,EAAQ,KAAEsF,WAAW,SAAS5E,YAAY,eAAeF,MAAM,CAAC,KAAO,QAAQ,YAAc,YAAY,SAAW,IAAI+E,SAAS,CAAC,MAASvF,EAAQ,MAAGY,GAAG,CAAC,MAAQ,SAASG,GAAWA,EAAOlJ,OAAO2N,YAAqBxF,EAAIsG,KAAKvF,EAAOlJ,OAAOuC,aAAYgG,EAAG,MAAM,CAACO,YAAY,CAAC,OAAS,QAAQ,CAACP,EAAG,QAAQ,CAACgF,WAAW,CAAC,CAAC/L,KAAK,QAAQgM,QAAQ,UAAUjL,MAAO4F,EAAa,UAAEsF,WAAW,cAAc5E,YAAY,eAAeF,MAAM,CAAC,KAAO,WAAW,YAAc,WAAW,SAAW,IAAI+E,SAAS,CAAC,MAASvF,EAAa,WAAGY,GAAG,CAAC,MAAQ,SAASG,GAAWA,EAAOlJ,OAAO2N,YAAqBxF,EAAIuG,UAAUxF,EAAOlJ,OAAOuC,aAAYgG,EAAG,WAAW,CAACM,YAAY,eAAeF,MAAM,CAAC,QAAU,WAAWI,GAAG,CAAC,MAAQZ,EAAIwG,YAAY,CAACxG,EAAIoB,GAAG,eAAe,IAAI,IAC7/H,EAAkB,CAAC,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACV,EAAIoB,GAAG,iBAAiB,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACV,EAAIoB,GAAG,gBAAgBhB,EAAG,IAAI,CAACM,YAAY,WAAW,CAACV,EAAIoB,GAAG,6DAA6D,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACV,EAAIoB,GAAG,6BAA6B,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACV,EAAIoB,GAAG,sBAAsB,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACV,EAAIoB,GAAG,mB,oCCoH98BqF,EAAAC,EAAA,QAkBe,GACfrN,KAAA,eACA8I,MAAA,WAEAjO,OACA,OACAyS,SAAA,GACAZ,OAAA,IACAN,KAAA,GACAY,UAAA,KACAC,KAAA,GACAC,UAAA,GACAb,WAAA,IAGArC,QAAA,IACAC,eAAA,mDACAsD,eAAA,wBAEAC,aAAArK,EAAA,QACAzF,SAAA+P,cAAA,iBAAAhO,aAAA,aAAA0D,GACA,KAAA+D,OAAA9E,MAAAsL,OAAA,wBAAAvK,GAGAgC,YAAAhH,GACA,KAAAwH,mBAAAxH,IAGAoO,aAEA,KAAArF,OAAA9E,MAAAwB,cAAA,KAAAsD,OAAA9E,MAAAwB,aACA+J,OAAAC,KAAA,kBAAA1G,OAAA9E,MAAAwB,eAGA4I,kBACA,KAAAtF,OAAA9E,MAAAuB,cAAA,KAAAuD,OAAA9E,MAAAuB,aACAgK,OAAAC,KAAA,eAAA1G,OAAA9E,MAAAuB,eAEA8I,eAGA,KAAAvF,OAAA9E,MAAAyL,UAAA,KAAAnB,OACA,IAAAoB,EAAA,IAAAC,WAAA,QAAArB,SACAiB,OAAAC,KAAA,WAAAE,WAEAnB,cAEA,IAAAmB,EAAA,IAAAC,WAAA,OACAJ,OAAAC,KAAA,cAAAE,WAEA,kBAEA,MAAAE,QAAAC,OAAAtN,IAAA,6BAGA,KAAAyL,KAAA4B,EAAAE,SAEAf,YAEA,YAAAF,KACA,IAAAkB,EAAAzQ,SAAAoN,eAAA,UACA,IAAAsD,EAAA1Q,SAAAoN,eAAA,QACAnJ,QAAA+I,IAAA0D,EAAAC,aAEAjB,EAAAkB,SAAAH,EAAA,eAAAlB,KAAA,iBAAAC,UAAA,cACAjH,MAAAmI,EAAAC,YACAE,OAAA,IACA,SAAA7O,GAEAA,GAAAiC,QAAAjC,aAMA,qBAGA,SAAA2M,UAEA,IACA,MAAAmC,EAAA,CACAC,QAAA,CACA,mCAEAC,KAAA,CACA,aAAAtC,OAGA6B,OAAAU,IAAA,4BAAAH,GAGA,MAAA9O,GAEAiC,QAAA+I,IAAAhL,GAKA,IAAAkP,EADA,KAAAC,SAAA,EAEA,MAAA1P,EAAA,IAAA/B,QAAAC,IAAAuR,EAAAvR,UACAsQ,OAAAC,KAAA,iBAAAxB,KAAAwC,SACAzP,EACA,KAAA0P,SAAA,IAIAnD,SAAA,CACAoD,gBACA,YAAA5H,OAAA9E,MAAAa,eAEA8L,oBACA,YAAAC,sBAGAC,YAAA,iBAIA,IAAAC,QAAAC,OAAAC,2BAKA,GAJAzN,QAAA+I,IAAA,aAAAwE,EAAAG,WAAA9M,OACAZ,QAAA+I,IAAA,aAAAwE,EAAAG,YAEA,KAAAnI,OAAAtB,OAAA,kBACA,KAAAsB,OAAA9E,MAAAC,WACA,CACA,MAAA2L,QAAAC,OAAAtN,IAAA,6BAGA,KAAAyL,KAAA,IAAA4B,EAAAsB,QAAAtB,EAAAE,QAAAF,EAAAsB,UAUA/F,UAGAoE,OAAA4B,YAAA,gBAAAtS,GACA,KAAAmP,KAAAnP,EACA,KAAAoP,WAAA,GACA/K,KAAA,OACAqM,OAAA4B,YAAA,wBACA,KAAAlD,WAAA,GACA/K,KAAA,SC3RsV,ICQlV,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIqF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,YAAYC,YAAY,CAAC,SAAW,oBAAoB,CAACP,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAACV,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,iBAAiBE,GAAG,CAAC,MAAQZ,EAAIkF,SAAS,CAAC9E,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,OAAOJ,EAAG,MAAM,CAAEH,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,MAAMJ,EAAI6I,GAAI5I,KAAKM,OAAO9E,MAAgB,YAAE,SAASqN,EAAKC,GAAO,OAAO3I,EAAG,KAAK,CAAC1F,IAAIqO,EAAMrI,YAAY,cAAc,CAACN,EAAG,KAAK,CAACM,YAAY,+DAA+DC,YAAY,CAAC,mBAAmB,wBAAwB,OAAS,WAAWC,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOf,EAAIgJ,YAAa,GAAKD,MAAW,CAAC3I,EAAG,cAAc,CAACM,YAAY,OAAOF,MAAM,CAAC,IAAO,GAAMsI,EAAK,GAAK,IAAM,MAAM,gBAAgB,KAAK,OAAS,aAAa1I,EAAG,MAAM,CAACM,YAAY,+DAA+D,CAACN,EAAG,KAAK,CAACM,YAAY,gBAAgB,CAACV,EAAIoB,GAAGpB,EAAIiC,GAAG6G,EAAK,OAAQA,EAAK,GAAI1I,EAAG,IAAI,CAACM,YAAY,gBAAgB,CAACV,EAAIoB,GAAG,YAAYhB,EAAG,IAAI,CAACI,MAAM,CAAC,QAAU,2BAA2B,KAAQ,GAAMsI,EAAK,GAAGG,OAAU,IAAG,OAAS,WAAW,CAACjJ,EAAIoB,GAAGpB,EAAIiC,GAAG6G,EAAK,GAAGG,OAAO5P,WAAW2G,EAAIS,KAAMqI,EAAK,GAAI1I,EAAG,IAAI,CAACM,YAAY,gBAAgB,CAACV,EAAIoB,GAAG,YAAYhB,EAAG,IAAI,CAACI,MAAM,CAAC,QAAU,2BAA2B,KAAQ,GAAMsI,EAAK,GAAGI,QAAW,IAAG,OAAS,WAAW,CAAClJ,EAAIoB,GAAGpB,EAAIiC,GAAG6G,EAAK,GAAGI,QAAQC,UAAUnJ,EAAIoB,GAAG,KAAKhB,EAAG,IAAI,CAACI,MAAM,CAAC,QAAU,2BAA2B,KAAQ,GAAMsI,EAAK,GAAS,OAAG,OAAS,WAAW,CAAC9I,EAAIoB,GAAG,cAAcpB,EAAIS,QAAQ,QAAO,GAAGT,EAAIS,YACpuD,EAAkB,CAAC,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACV,EAAIoB,GAAG,oBCDtL,EAAS,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,SAASJ,MAAMN,EAAIoJ,QAAQpJ,EAAIqJ,OAAO,CAACjJ,EAAG,MAAM,CAACE,MAAM,CAACN,EAAIsJ,WAAWtJ,EAAIuJ,OAAQvJ,EAAIwJ,SAAUxJ,EAAIyJ,eAAejJ,MAAM,CAAC,IAAMR,EAAI0J,IAAI,IAAM1J,EAAI2J,UACrQ,GAAkB,GCUP,IACftQ,KAAA,aACA8I,MAAA,CACAuH,IAAA,CACAlS,KAAA4K,OACAC,UAAA,GAEAsH,IAAA,CACAnS,KAAA4K,OACAI,QAAA,IAEA6G,KAAA,CACA7R,KAAA4K,OACAI,QAAA,MAEA+G,OAAA,CACA/R,KAAA4K,OACAI,QAAA,MAEAiH,aAAA,CACAjS,KAAA4K,OACAI,QAAA,MAEAgH,SAAAI,SAEAvG,QAAA,CACA+F,QAAAC,KAAA,UAAAA,EAAA,KACAC,YAAAC,EAAAC,EAAAC,KACA,IAAAI,EAAAC,EAAAC,EAYA,OATAF,EADAN,EACA,YAAAA,EAAA,mBAAAA,EAEA,KAGAO,EAAAN,EAAA,sBAEAO,EAAAN,EAAA,iBAAAA,EAAA,KAEA,GAAAI,KAAAC,KAAAC,OCnDoV,MCOhV,GAAY,eACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIa,M,QCyCA,IACf1Q,KAAA,mBACA2J,WAAA,CACAgH,eAEA7H,MAAA,WACAjO,OACA,OACAgU,SAAA,IAGA7E,QAAA,IACAuD,eAAA,wBACA,kBAAAvN,GAGA,kBAAAkH,OAAA9E,MAAA0B,WAAA9D,GAAA,GAIA,YADA,KAAA4Q,QAAAjV,KAAA,WAGA,KAAAkT,SAAA,EACA,IAAAgC,EAAA,KAAA3J,OAAA9E,MAAA0B,WAAA9D,GAAA,GAAAqK,MAAA,KAAAyG,MACA,UAAAD,EACA,CACA,IAAAjC,EACA,MAAAzP,EAAA,IAAA/B,QAAAC,IAAAuR,EAAAvR,IACA0T,EAAA,KAAA7J,OAAA9E,MAAA0B,WAAA9D,GAAA,SACA2N,OAAAC,KAAA,YAAAmD,EAAA,KAAA7J,OAAA9E,MAAA0B,WAAA9D,GAAA,GAAA4O,SACAzP,MAGA,CACA,IAAAyP,EACA,MAAAzP,EAAA,IAAA/B,QAAAC,IAAAuR,EAAAvR,UAEAsQ,OAAAC,KAAA,iBAAA1G,OAAA9E,MAAA0B,WAAA9D,GAAA,QAAAkH,OAAA9E,MAAA0B,WAAA9D,GAAA,GAAA4O,SACAzP,EAGA,KAAA0P,SAAA,IAGAnD,SAAA,CACAoD,gBACA,YAAA5H,OAAA9E,MAAAa,eAEA8L,oBACA,YAAAC,sBAGAC,cACA,KAAA/H,OAAA9E,MAAAa,cAAA,kBAEA+N,MAAA,CACAnC,QAAA,SAAAA,GACAA,EAEA,KAAAoC,OAAA,KAAAC,SAAAC,KAAA,CAAAC,UAAA,KAAAC,MAAAC,oBAGA,KAAAL,OAAAM,OACA,KAAAN,OAAA,SC1HwV,MCQpV,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItK,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,aAAaC,YAAY,CAAC,SAAW,oBAAoB,CAACP,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAACV,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,iBAAiBE,GAAG,CAAC,MAAQZ,EAAIkF,SAAS,CAAC9E,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,OAAOJ,EAAG,MAAM,CAAEH,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,MAAM,CAACJ,EAAI6I,GAAI5I,KAAKM,OAAO9E,MAAkB,cAAE,SAASoP,EAAI9B,GAAO,OAAO3I,EAAG,KAAK,CAAC1F,IAAIqO,EAAMrI,YAAY,cAAc,CAACN,EAAG,KAAK,CAACM,YAAY,+DAA+DC,YAAY,CAAC,mBAAmB,wBAAwB,OAAS,WAAWC,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOf,EAAI8K,eAAgB,GAAK/B,MAAW,CAAC3I,EAAG,cAAc,CAACM,YAAY,OAAOF,MAAM,CAAC,IAAO,GAAMqK,EAAI,GAAK,IAAM,MAAM,gBAAgB,KAAK,OAAS,aAAazK,EAAG,MAAM,CAACM,YAAY,+DAA+D,CAACN,EAAG,KAAK,CAACM,YAAY,gBAAgB,CAACV,EAAIoB,GAAGpB,EAAIiC,GAAG4I,EAAI,OAAOzK,EAAG,IAAI,CAACM,YAAY,gBAAgB,CAACV,EAAIoB,GAAG,oBAAoB,QAAOhB,EAAG,MAAM,CAAEJ,EAAIzC,QAAQ7I,OAAO,EAAG0L,EAAG,eAAe,CAACM,YAAY,SAASF,MAAM,CAAC,QAAUR,EAAIzC,QAAQ,UAAY,OAAO,QAAU,oBAAoBqD,GAAG,CAAC,MAAQZ,EAAI+K,WAAW7E,MAAM,CAAC9L,MAAO4F,EAAgB,aAAEmG,SAAS,SAAUC,GAAMpG,EAAIgL,aAAa5E,GAAKd,WAAW,kBAAkBtF,EAAIS,KAAKL,EAAG,MAAMA,EAAG,IAAI,CAACM,YAAY,6BAA6BE,GAAG,CAAC,MAAQZ,EAAIiL,aAAa,CAACjL,EAAIoB,GAAG,iBAAiB,IAAI,GAAGpB,EAAIS,YACxnD,GAAkB,CAAC,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACV,EAAIoB,GAAG,sB,aC+E3K,IACf/H,KAAA,qBACA2J,WAAA,CACAgH,cACAkB,sBAEA/I,MAAA,WACAjO,OACA,OACAgU,SAAA,EACA3K,QAAA,GACAyN,aAAA,OAGA3H,QAAA,IACAuD,eAAA,wBACA,qBAAAvN,GAGA,KAAA6O,SAAA,EACA,IACA,IAAAD,EACA,MAAAzP,EAAA,IAAA/B,QAAAC,IAAAuR,EAAAvR,UACAsQ,OAAAC,KAAA,yBAAA1G,OAAA9E,MAAA2B,aAAA/D,GAAA+B,MAAA,UAAAmF,OAAA9E,MAAA2B,aAAA/D,GAAA,GAAA4O,SACAzP,EAEA,KAAA0P,SAAA,EACA,IAAAiD,EAAApU,SAAAoN,eAAA,UAEAgH,EAAAC,UAAA,KACAD,EAAAE,OAEA,MAAAtS,GACA,KAAAmP,SAAA,IAKA+C,aAGA,SAAAK,IAGAC,UAAAC,aAAAC,mBACAnT,KAAA,SAAAoT,GACA,IAAAC,EAAAD,EAAAE,OAAAjS,GAAA,cAAAA,EAAAkS,MAEA,QAAAC,KADA,KAAAvO,QAAA,GACAoO,EAEA,IAAAA,EAAAG,GAAAC,UAGA,KAAAxO,QAAAvI,KAAA,CAAAoF,MAAAuR,EAAAG,GAAAC,SAAAnI,KAAA+H,EAAAG,GAAA3C,SAGAxO,KAAA,OACAqR,OAAA,SAAAjU,GAEAiD,QAAA+I,IAAAhM,EAAAsB,KAAA,KAAAtB,EAAAqB,YAGA,SAAA6S,EAAAlU,GAEAiD,QAAA+I,IAAAhM,GAEAwT,UAAAW,aACAX,UAAAW,cACAX,UAAAY,oBACAZ,UAAAa,iBACAb,UAAAc,eAGA,qBAAAd,UAAAC,aAAAU,aACAX,UAAAW,aAAA,CACAf,OAAA,GACAG,EAAA3Q,KAAA,MAAAsR,GAEAV,UAAAC,aAAAU,aAAA,CACAf,OAAA,IACA7S,KAAAgT,EAAA3Q,KAAA,OAAAqR,MAAAC,IAIA,gBAAAjB,GAGA,GADAhQ,QAAA+I,IAAA,CAAAiH,kBACAA,EAAA5Q,MAAA,OACA,IAAA+Q,EAAApU,SAAAoN,eAAA,UACAgH,EAAAmB,OACA,IAAAC,QAAAhB,UAAAC,aAAAU,aAAA,CACAf,MAAA,CACAY,SAAA,CAAAS,MAAAxB,EAAA5Q,OACAkF,MAAA,CAAAmN,MAAA,MAAAlN,OAAA,CAAAkN,MAAA,MACAC,UAAA,CAAAC,IAAA,GAAAF,MAAA,GAAAG,IAAA,OAGAzB,EAAAC,UAAAmB,EACApB,EAAA0B,OACA7F,OAAAC,KAAA,yBAGAlC,SAAA,CACAoD,gBACA,YAAA5H,OAAA9E,MAAAa,eAEA8L,oBACA,YAAAC,sBAGAC,cACA,KAAA/H,OAAA9E,MAAAa,cAAA,kBAEA+N,MAAA,CACAnC,QAAA,SAAAA,GACAA,EAEA,KAAAoC,OAAA,KAAAC,SAAAC,KAAA,CAAAC,UAAA,KAAAC,MAAAC,oBAGA,KAAAL,OAAAM,OACA,KAAAN,OAAA,SCzM0V,MCQtV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItK,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,sBAAsBC,YAAY,CAAC,SAAW,oBAAoB,CAACP,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAACV,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,iBAAiBE,GAAG,CAAC,MAAQZ,EAAIkF,SAAS,CAAC9E,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,OAAOJ,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACV,EAAIoB,GAAG,UAAUpB,EAAIiC,GAAGhC,KAAK6M,OAAO,UAAU1M,EAAG,QAAQ,CAACgF,WAAW,CAAC,CAAC/L,KAAK,QAAQgM,QAAQ,UAAUjL,MAAO4F,EAAS,MAAEsF,WAAW,UAAU5E,YAAY,QAAQF,MAAM,CAAC,KAAO,QAAQ,IAAM,IAAI,IAAM,MAAM,MAAQ,OAAO+E,SAAS,CAAC,MAASvF,EAAS,OAAGY,GAAG,CAAC,QAAUZ,EAAI+M,cAAc,SAAW/M,EAAI+M,cAAc,IAAM,SAAShM,GAAQf,EAAI8M,MAAM/L,EAAOlJ,OAAOuC,UAAUgG,EAAG,MAAMA,EAAG,MAAM,CAAEH,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,MAAM,CAACA,EAAG,IAAI,CAACM,YAAY,6BAA6BE,GAAG,CAAC,MAAQZ,EAAIgN,UAAU,CAAChN,EAAIoB,GAAG,eAAehB,EAAG,QAAQ,CAAC6M,IAAI,OAAOtM,YAAY,CAAC,QAAU,QAAQH,MAAM,CAAC,KAAO,OAAO,OAAS,yBAAyBI,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOf,EAAIkN,OAAOjN,UAAUG,EAAG,YAAYJ,EAAI6B,GAAG,CAACnB,YAAY,aAAaF,MAAM,CAAC,IAAM,MAAMI,GAAG,CAAC,MAAQ,SAASG,GAAQf,EAAImN,YAAa,GAAM,IAAMnN,EAAIoN,QAAQlH,MAAM,CAAC9L,MAAO4F,EAAQ,KAAEmG,SAAS,SAAUC,GAAMpG,EAAIqN,KAAKjH,GAAKd,WAAW,SAAS,YAAYtF,EAAIsN,aAAY,GAAO,CAAClN,EAAG,mBAAmB,CAACI,MAAM,CAAC,KAAO,aAAa,KAAO,cAAcR,EAAI6I,GAAI7I,EAAQ,MAAE,SAASuN,EAAQxE,GAAO,OAAO3I,EAAG,KAAK,CAAC1F,IAAI6S,EAAQlU,KAAKqH,YAAY,aAAaE,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOf,EAAIwN,UAAUzE,IAAQ,WAAa,SAAShI,GAAQ,OAAOf,EAAIwN,UAAUzE,EAAMhI,MAAW,CAACX,EAAG,KAAK,CAACM,YAAY,gEAAgE,CAACN,EAAG,cAAc,CAACO,YAAY,CAAC,MAAQ,QAAQH,MAAM,CAAC,IAAO,GAAM+M,EAAW,IAAG,IAAM,MAAM,gBAAgB,KAAK,OAAS,aAAanN,EAAG,IAAI,CAACO,YAAY,CAAC,MAAQ,QAAQ,cAAc,SAAS,CAACX,EAAIoB,GAAGpB,EAAIiC,GAAG8G,EAAM,GAAG,MAAM/I,EAAIiC,GAAGsL,EAAQlU,SAAS+G,EAAG,IAAI,CAACO,YAAY,CAAC,OAAS,UAAU,cAAc,QAAQC,GAAG,CAAC,WAAa,SAASG,GAAQ,OAAOf,EAAIyN,SAASF,EAAQxM,IAAS,MAAQ,SAASA,GAAQ,OAAOf,EAAIyN,SAASF,MAAY,CAACnN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,IAAI,QAAO,IAAI,IAAI,GAAGR,EAAIS,YACh4E,GAAkB,CAAC,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACV,EAAIoB,GAAG,gB,wBCuE3K,IACf/H,KAAA,eACA8I,MAAA,WACAa,WAAA,CACA0K,eACA1D,eAEA9V,OACA,OACAyZ,SAAA,EACAL,YAAA,KACAD,KAAA,GAGAO,UAAA,EACAC,UAAA,KACAf,MAAA,MAIAzJ,QAAA,IACAuD,eAAA,wBACA6G,SAAAF,EAAA5V,GAEAA,GACAA,EAAAmW,iBACA,MAAA/E,EAAA,KAAAsE,KAAAU,QAAAR,GACAxE,GAAA,IACA,KAAAsE,KAAAzX,OAAAmT,EAAA,GACA/B,OAAAC,KAAA,eAAA8B,KAGAqE,OAAAzV,GAEA,KAAAwV,YAAA,EACAnS,QAAA+I,IAAA,CAAApM,UACAqP,OAAAC,KAAA,cAAAtP,EAAAqW,SAAArW,EAAAsW,WAEAjB,UAEA,KAAAtC,MAAAN,KAAA8D,SAEAV,UAAAzE,EAAApR,GAEAA,GACAA,EAAAmW,iBACA9G,OAAAC,KAAA,YAAA8B,IAEAgE,gBAGA/F,OAAAC,KAAA,oBAAA6F,QAEA,aAAAqB,GAGA,GADAnT,QAAA+I,IAAAoK,GACA,KAAAzD,MAAAN,KAAAgE,OAAA,KAAA1D,MAAAN,KAAAgE,MAAA,IAEA,IAAAC,EAAAC,IAAAC,gBAAA,KAAA7D,MAAAN,KAAAgE,MAAA,IACApH,OAAAC,KAAA,cAAAoH,GAAA,MAKAtJ,SAAA,CACAoD,gBACA,YAAA5H,OAAA9E,MAAAa,eAEA8L,oBACA,YAAAC,sBAGAC,cACA,KAAA/H,OAAA9E,MAAAa,cAAA,kBAEAsG,UAEAoE,OAAA4B,YAAA,0BACA,KAAAyE,KAAA,IACA1S,KAAA,OACAqM,OAAA4B,YAAA,iBAAA4F,GACA,KAAAnB,KAAArY,KAAA,CAAAqE,KAAA,cAAAgU,KAAA3Y,OAAA8Z,SACA7T,KAAA,SC1JqV,MCQjV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIqF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,aAAaC,YAAY,CAAC,SAAW,oBAAoB,CAACP,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAACV,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,iBAAiBE,GAAG,CAAC,MAAQZ,EAAIkF,SAAS,CAAC9E,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,OAAOJ,EAAG,MAAMA,EAAG,MAAM,CAAEH,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,MAAM,CAACA,EAAG,IAAI,CAACM,YAAY,6BAA6BE,GAAG,CAAC,MAAQZ,EAAIyO,WAAW,CAACzO,EAAIoB,GAAG,gBAAiBpB,EAAIO,OAAO9E,MAAM8B,QAAQ7I,OAAO,EAAG0L,EAAG,IAAI,CAACM,YAAY,6BAA6BE,GAAG,CAAC,MAAQ,SAASG,GAAQf,EAAI6M,MAAM7M,EAAI6M,KAAM7M,EAAI0O,YAAY,CAAG1O,EAAI6M,KAAqCzM,EAAG,MAAM,CAACJ,EAAIoB,GAAG,mBAAhDhB,EAAG,MAAM,CAACJ,EAAIoB,GAAG,gBAAoDpB,EAAIS,KAAKL,EAAG,YAAYJ,EAAI6B,GAAG,CAACnB,YAAY,aAAaF,MAAM,CAAC,IAAM,KAAK,QAAU,CAACmO,OAAQ,UAAU/N,GAAG,CAAC,MAAQ,SAASG,GAAQf,EAAImN,YAAa,GAAM,IAAMnN,EAAIoN,QAAQlH,MAAM,CAAC9L,MAAO4F,EAAIO,OAAO9E,MAAa,QAAE0K,SAAS,SAAUC,GAAMpG,EAAI4O,KAAK5O,EAAIO,OAAO9E,MAAO,UAAW2K,IAAMd,WAAW,yBAAyB,YAAYtF,EAAIsN,aAAY,GAAO,CAAClN,EAAG,mBAAmB,CAACI,MAAM,CAAC,KAAO,aAAa,KAAO,cAAcR,EAAI6I,GAAI7I,EAAIO,OAAO9E,MAAa,SAAE,SAAS8R,EAAQxE,GAAO,OAAO3I,EAAG,KAAK,CAAC1F,IAAIqO,EAAMrI,YAAY,cAAc,CAACN,EAAG,KAAK,CAACM,YAAY,+DAA+DC,YAAY,CAAC,OAAS,UAAU,CAACP,EAAG,oBAAoB,CAACM,YAAY,OAAOC,YAAY,CAAC,cAAc,MAAM,OAAS,QAAQH,MAAM,CAAC,KAAO,yBAAyBJ,EAAG,cAAc,CAACO,YAAY,CAAC,MAAQ,OAAO,cAAc,QAAQH,MAAM,CAAC,IAAM+M,EAAQ,IAAMvN,EAAIyN,SAAS,SAAWzN,EAAI6O,WAAW,gBAAgB,KAAK,OAAS,cAAc,QAAO,IAAI,IAAI,GAAG7O,EAAIS,YACt1D,GAAkB,CAAC,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACV,EAAIoB,GAAG,iBCDtL,GAAS,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAMN,EAAIoJ,QAAQpJ,EAAIqJ,OAAO,CAACjJ,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,MAAM,CAACM,YAAY,oBAAoBC,YAAY,CAAC,OAAS,UAAU,cAAc,SAASC,GAAG,CAAC,MAAQ,SAASG,GAAQf,EAAI8O,IAAIC,QAAQ/O,EAAI8O,IAAIC,OAAQ/O,EAAIgP,SAAShP,EAAI8O,IAAI9O,EAAI8O,IAAIC,WAAY,CAAE9O,KAAK6O,IAAU,OAAE1O,EAAG,MAAM,CAACA,EAAG,oBAAoB,CAACO,YAAY,CAAC,MAAQ,OAAOH,MAAM,CAAC,KAAO,wBAAwB,GAAGJ,EAAG,MAAM,CAACA,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,KAAKJ,EAAG,MAAM,CAACM,YAAY,QAAQC,YAAY,CAAC,OAAS,UAAU,eAAe,SAAS,CAACP,EAAG,IAAI,CAACJ,EAAIoB,GAAGpB,EAAIiC,GAAGjC,EAAI8O,IAAItX,SAAS4I,EAAG,eAAe,CAACM,YAAY,SAASF,MAAM,CAAC,QAAU,CAAC,QAAQ,SAAS,SAAS,QAAUR,EAAI8O,IAAItX,MAAMoJ,GAAG,CAAC,MAAQZ,EAAIiP,QAAQ/I,MAAM,CAAC9L,MAAO4F,EAAI8O,IAAQ,KAAE3I,SAAS,SAAUC,GAAMpG,EAAI4O,KAAK5O,EAAI8O,IAAK,OAAQ1I,IAAMd,WAAW,eAAe,GAAGlF,EAAG,MAAM,CAACM,YAAY,kBAAkBC,YAAY,CAAC,OAAS,UAAU,cAAc,SAASC,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOf,EAAIkP,IAAIlP,EAAI8O,QAAQ,CAAC1O,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,KAAKJ,EAAG,MAAM,CAACM,YAAY,OAAOC,YAAY,CAAC,cAAc,QAAQ,CAACP,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,IAAI,CAACM,YAAY,QAAQ,CAACV,EAAIoB,GAAG,QAAQpB,EAAIiC,GAAGkN,KAAKC,MAAMnP,KAAK6O,IAAIO,SAASjP,EAAG,QAAQ,CAACM,YAAY,OAAOF,MAAM,CAAC,KAAO,QAAQ,MAAQ,UAAU,IAAM,KAAK,IAAM,OAAOI,GAAG,CAAC,QAAUZ,EAAIsP,OAAO,SAAWtP,EAAIsP,OAAO,MAAQtP,EAAIsP,YAAYlP,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,IAAI,CAACM,YAAY,cAAc,CAACV,EAAIoB,GAAG,aAAapB,EAAIiC,GAAGhC,KAAK6O,IAAIS,aAAanP,EAAG,QAAQ,CAACgF,WAAW,CAAC,CAAC/L,KAAK,QAAQgM,QAAQ,UAAUjL,MAAO4F,EAAQ,KAAEsF,WAAW,SAAS5E,YAAY,aAAaF,MAAM,CAAC,KAAO,QAAQ,IAAM,IAAI,IAAM,MAAM,MAAQ,KAAK+E,SAAS,CAAC,MAASvF,EAAQ,MAAGY,GAAG,CAAC,QAAUZ,EAAIwP,QAAQ,SAAWxP,EAAIwP,QAAQ,IAAM,SAASzO,GAAQf,EAAIyP,KAAK1O,EAAOlJ,OAAOuC,cAA6B,UAAd4F,EAAI8O,IAAItX,MAAgC,SAAdwI,EAAI8O,IAAItX,KAAe4I,EAAG,MAAM,CAACM,YAAY,OAAOC,YAAY,CAAC,cAAc,QAAQ,CAACP,EAAG,IAAI,CAACM,YAAY,cAAcC,YAAY,CAAC,OAAS,WAAWC,GAAG,CAAC,MAAQZ,EAAI0P,aAAa,CAACtP,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,8BAA8BR,EAAIoB,GAAG,WAAW,GAAGhB,EAAG,IAAI,CAACM,YAAY,YAAYC,YAAY,CAAC,OAAS,UAAU,eAAe,QAAQC,GAAG,CAAC,MAAQZ,EAAI2P,WAAW,CAACvP,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,8BAA8BR,EAAIoB,GAAG,UAAU,KAAKhB,EAAG,MAAM,CAACM,YAAY,OAAOC,YAAY,CAAC,cAAc,QAAQ,CAACP,EAAG,IAAI,CAACM,YAAY,cAAcC,YAAY,CAAC,OAAS,WAAWC,GAAG,CAAC,MAAQZ,EAAI0P,aAAa,CAACtP,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,8BAA8BR,EAAIoB,GAAG,WAAW,QACrpF,GAAkB,G,0BCCf,MAAMwO,GAOTC,cAEI5P,KAAKzI,KAAOoY,GAAOE,WAAWC,MAC9B9P,KAAK+P,gBAAkB,IAAIC,QAC3BhQ,KAAKiQ,cAAgB,IAAID,QACzBhQ,KAAKoP,IAAM,GACXpP,KAAKsP,SAAW,EAChBtP,KAAKwP,KAAO,EACZxP,KAAKkQ,aAAe,KACpBlQ,KAAKmQ,OAASnQ,KAAKoQ,WAAWpQ,KAAKoP,KACnCpP,KAAK8O,QAAS,EACd9O,KAAKvH,OAAU4X,IAASrQ,KAAKsQ,OAAOD,IAGxCD,WAAWhB,GAEP,MAAMe,EAAS,IAAIH,SAAyB,GAAI/U,OAAOsV,WAAatV,OAAOuV,YAAa,EAAG,IAO3F,OANNL,EAAOM,KAAO,IACdN,EAAOO,IAAM,IACbP,EAAOQ,eAAevB,GACtBe,EAAOS,SAASC,IAAK,EAAG,EAAG,GAC3BV,EAAOW,OAAQ,EAAG,EAAG,GACfX,EAAOY,yBACAZ,EAEXa,SAASxX,GAELwG,KAAK+P,gBAAgBkB,KAAKzX,GACZ,SAAXwG,KAAKzI,MACJyI,KAAKkR,OAAO1X,GAEpB0X,OAAO1X,GAEHwG,KAAKiQ,cAAcgB,KAAKzX,GAE5B2X,gBAAgBvZ,GAEZoI,KAAKkQ,aAAetY,EAExBwZ,UAAUC,GAENrR,KAAK8O,OAASuC,EAElBf,OAAOD,GAEH,IAAIrQ,KAAK8O,OAAQ,OACjB9O,KAAKwP,MAAMa,EAERrQ,KAAKwP,MAAMxP,KAAKsP,WACftP,KAAKwP,KAAOxP,KAAKsP,UAErB,IAAI3D,EAAS3L,KAAKwP,KAAKxP,KAAKsP,SACd,SAAXtP,KAAKzI,OACJoU,EAAS,GAEb,MAAM2F,GAAiB,IAAItB,UAAgBuB,sBAAsBvR,KAAK+P,iBAChEyB,GAAe,IAAIxB,UAAgBuB,sBAAsBvR,KAAKiQ,eAC9DwB,GAAiB,IAAIzB,SAAc0B,sBAAsB1R,KAAK+P,iBACpE,IAAI4B,EAAmBL,EAAeM,QAClCC,EAAmBJ,EAAeG,QAGtC,GAFA5R,KAAKmQ,OAAO2B,SAASb,KAAKY,GAEZ,UAAX7R,KAAKzI,KAEJoa,EAAmBL,EAAeM,QAAQG,eAAe,EAAEpG,GAAQqG,IAAIR,EAAaI,QAAQG,eAAepG,IAC3GkG,GAAmB,IAAI7B,SAAc0B,sBAAsB1R,KAAK+P,sBAE/D,GAAgB,SAAb/P,KAAKzI,KACb,KAAA0a,EACI,IAAIC,EAAc,IAAIlC,SAAc,EAAE,EAAE,GACvB,QAAjBiC,EAAAjS,KAAKkQ,oBAAY,IAAA+B,GAAjBA,EAAmBE,iBAAiBD,GACpC,IAAIE,EAAKd,EAAee,WAAWH,GAC/BI,EAAKd,EAAaa,WAAWH,GAEjC,IAAIrc,EAAIyb,EAAeM,QAAQW,IAAIL,EAAYN,SAC3Cvb,EAAImb,EAAaI,QAAQW,IAAIL,EAAYN,SACzC/F,EAAIhW,EAAE+b,QAAQG,eAAe,EAAEpG,GAAQqG,IAAI3b,EAAEub,QAAQG,eAAepG,IACxEgG,EAAmBO,EAAYN,QAAQI,IAAInG,EAAE2G,YAAYT,eAAeK,GAAI,EAAEzG,GAAQ2G,EAAG3G,SAE7DtS,GAAzB2G,KAAKmQ,OAAO+B,aACXA,EAAYO,KAAKzS,KAAKmQ,OAAO+B,YAAwB,KAAX,EAAE7B,IAChDrQ,KAAKmQ,OAAOW,OAAOoB,GACnBlS,KAAKmQ,OAAO+B,YAAcA,EAE9BlS,KAAKmQ,OAAOS,SAASK,KAAKU,GAE1B3R,KAAKmQ,OAAOQ,eAAe3Q,KAAKoP,KAEpCsD,YAEI,IAAIC,EAAS,CACTpb,KAAMyI,KAAKzI,KACX4Y,OAAQnQ,KAAKmQ,OAAOyC,SACpB7C,gBAAiB/P,KAAK+P,gBACtBE,cAAejQ,KAAKiQ,cACpBb,IAAKpP,KAAKoP,IACVE,SAAUtP,KAAKsP,UAEnB,OAAOqD,EAEXE,YAAYC,GAER9S,KAAKzI,KAAOub,EAAKvb,KACjB,IAAI8S,EAAS,IAAI2F,SACjBhQ,KAAKmQ,OAAS9F,EAAO0I,MAAOD,EAAK3C,QACjCnQ,KAAK+P,gBAAgBiD,UAAUF,EAAK/C,gBAAgBkD,UACpDjT,KAAKiQ,cAAc+C,UAAUF,EAAK7C,cAAcgD,UAChDjT,KAAKoP,IAAM0D,EAAK1D,IAChBpP,KAAKsP,SAAWwD,EAAKxD,UAG5B4D,gBAtHYvD,GAAM,aACK,CACtBG,MAAO,QACPqD,OAAQ,SACRC,MAAO,UCmCM,QACfha,KAAA,cACA2J,WAAA,CACAkI,sBAEA/I,MAAA,CACA2M,IAAA,CACAtX,UAAAoY,EACAvN,UAAA,GAEA6M,IAAA,CACA7M,UAAA,GAEA2M,SAAA,CACA3M,UAAA,GAEAgH,KAAA,CACA7R,KAAA4K,OACAI,QAAA,MAEA+G,OAAA,CACA/R,KAAA4K,OACAI,QAAA,MAEAiH,aAAA,CACAjS,KAAA4K,OACAI,QAAA,MAEAgH,SAAAI,SAEAvG,QAAA,CACA+F,QAAAC,KAAA,UAAAA,EAAA,KACAiG,OAAA3X,GAEA,KAAAmX,IAAAO,IAAA1X,EAAAE,OAAAuC,MACA,KAAAkZ,MAAA,iBAAA3b,EAAAE,OAAAuC,QAGA6U,OAAAtX,GAEAqD,QAAA+I,IAAApM,IAGA+X,aAEA1I,OAAAC,KAAA,oBAAAmJ,IACA,KAAAtB,IAAAmC,SAAAb,EAAAmD,WAIA5D,WAEA3I,OAAAC,KAAA,oBAAAmJ,IACA,KAAAtB,IAAAqC,OAAAf,EAAAmD,WAGA/D,QAAA7X,GAEA,KAAAmX,IAAAS,SAAA5X,EAAAE,OAAAuC,OAIAiX,UAAAC,GAEA,KAAAxC,IAAAC,OAAAuC,GAEAhI,YAAAC,EAAAC,EAAAC,KACA,IAAAI,EAAAC,EAAAC,EAYA,OATAF,EADAN,EACA,YAAAA,EAAA,mBAAAA,EAEA,KAGAO,EAAAN,EAAA,sBAEAO,EAAAN,EAAA,iBAAAA,EAAA,KAEA,GAAAI,KAAAC,KAAAC,MAGA7V,OACA,OAEAmb,IAAA,KAAAP,IAAAO,IACAI,KAAA,KC/HoV,MCQhV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCmDA,IACfpW,KAAA,eACA8I,MAAA,WACAa,WAAA,CACA0K,eACA8F,eAGAtf,OACA,OACAyZ,SAAA,EACAL,YAAA,KACAM,UAAA,EACAC,UAAA,KACAf,MAAA,IACAD,MAAA,EACAhS,OAAA,KAIAwI,QAAA,IAEAuD,eAAA,wBACA6G,SAAAF,GAEA,MAAAxE,EAAA,KAAAxI,OAAA9E,MAAA8B,QAAAwQ,QAAAR,GACAxE,GAAA,IACA,KAAAxI,OAAA9E,MAAA8B,QAAA3H,OAAAmT,EAAA,GACA/B,OAAAC,KAAA,eAAAsG,EAAA6C,QACApJ,OAAAC,KAAA,eAAAsG,EAAA6C,OAAA7C,EAAA7U,SAEA,QAAA6H,OAAA9E,MAAA8B,QAAA7I,SAEAsS,OAAAC,KAAA,eACA,KAAA4F,MAAA,IAGA4G,YAIArG,OAAAzV,GAEA,KAAAwV,YAAA,EACAnG,OAAAC,KAAA,eAAAtP,EAAAqW,SAAArW,EAAAsW,WAWAQ,WAGAzH,OAAAC,KAAA,oBAAAyM,IACA,MAAAtD,EAAA,IAAAR,GACAQ,SAAAsD,EAAA7B,QACAzB,EAAAf,IAAAqE,EAAAC,iBACAvD,EAAAa,SAAAb,SAAAmD,QACA,KAAAhT,OAAA9E,MAAA8B,QAAAvI,KAAAob,GACApJ,OAAAC,KAAA,YAAAmJ,UACApJ,OAAAC,KAAA,YAAAmJ,WAAA1X,WAOAmW,WAAAlX,EAAAoX,GAEA,KAAAxO,OAAA9E,MAAA8B,QAAAqW,QAAArG,IAEAA,GAAA5V,GAEA4V,EAAA8D,WAAA,KAGAtC,GAEA/H,OAAAC,KAAA,oBAAAtP,EAAAyY,OAAAyD,MACA7M,OAAAC,KAAA,kBAAAtP,EAAAyZ,gBAAAzW,KAAAhD,IACAA,EAAA8X,KAAA,GAIAzI,OAAAC,KAAA,gBAIA8F,gBAEA/F,OAAAC,KAAA,oBAAA6F,QAEA4B,SAEA,KAAA7B,MAIA7F,OAAAC,KAAA,iBAAApM,OAAA,KAAAiZ,UACA,KAAAvT,OAAA9E,MAAA8B,QAAAqW,QAAArG,IACAA,EAAA8D,WAAA,KAEA,KAAA9Q,OAAA9E,MAAA8B,QAAA,GAAA8T,WAAA,GACA,KAAA9Q,OAAA9E,MAAA8B,QAAA,GAAAkS,KAAA,EACAzI,OAAAC,KAAA,yBAAA1G,OAAA9E,MAAA8B,QAAA,GAAA6S,OAAAyD,MACA7M,OAAAC,KAAA,uBAAA1G,OAAA9E,MAAA8B,QAAA,GAAA6T,gBAAAzW,KAAA,KAAA4F,OAAA9E,MAAA8B,QAAA,OAIAyJ,OAAAC,KAAA,oBAAApM,OAAA,KAAAiZ,UACA,KAAAvT,OAAA9E,MAAA8B,QAAAqW,QAAArG,IACAA,EAAA8D,WAAA,KAEArK,OAAAC,KAAA,iBAGA6M,SAAAxD,GAIA,QAAA9b,EAAA,EAAAA,EAAA,KAAA+L,OAAA9E,MAAA8B,QAAA7I,OAAAF,IACA,CACA,IAAA+Y,EAAA,KAAAhN,OAAA9E,MAAA8B,QAAA/I,GACA,GAAA+Y,EAAAwB,QACAxB,EAAAkC,MAAAlC,EAAAgC,SACA,CACA,IAAAwE,EAAAvf,EAAA,EACAuf,GAAA,KAAAxT,OAAA9E,MAAA8B,QAAA7I,SACAqf,EAAA,GACAxG,EAAA8D,WAAA,GACA,KAAA9Q,OAAA9E,MAAA8B,QAAAwW,GAAA1C,WAAA,GACA,KAAA9Q,OAAA9E,MAAA8B,QAAAwW,GAAAtE,KAAA,EACAzI,OAAAC,KAAA,yBAAA1G,OAAA9E,MAAA8B,QAAAwW,GAAA3D,OAAAyD,MACA7M,OAAAC,KAAA,uBAAA1G,OAAA9E,MAAA8B,QAAAwW,GAAA3C,gBAAAzW,KAAA,KAAA4F,OAAA9E,MAAA8B,QAAAwW,KACAxG,EAAAkC,KAAA,MAOA1K,SAAA,CACAoD,gBACA,YAAA5H,OAAA9E,MAAAa,eAEA8L,oBACA,YAAAC,sBAGAC,cACA,KAAA/H,OAAA9E,MAAAa,cAAA,kBAEAsG,UAEA,KAAA/H,OAAAgZ,uBACA7M,OAAA4B,YAAA,+BAAAmK,GAGA,GADA,KAAAxS,OAAA9E,MAAA8B,QAAA,GACAwV,EAEA,QAAArZ,KAAAqZ,EACA,CACA,MAAA3C,EAAA,IAAAR,GACAQ,EAAA0C,YAAApZ,GACA,KAAA6G,OAAA9E,MAAA8B,QAAAvI,KAAAob,GAEApJ,OAAAC,KAAA,YAAAmJ,UACApJ,OAAAC,KAAA,YAAAmJ,WAAA1X,UAIAiC,KAAA,SCtPqV,MCQjV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIqF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,sBAAsBC,YAAY,CAAC,SAAW,oBAAoB,CAACP,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAACV,EAAIiF,GAAG,GAAG7E,EAAG,MAAM,CAACM,YAAY,iBAAiBE,GAAG,CAAC,MAAQZ,EAAIkF,SAAS,CAAC9E,EAAG,SAAS,CAACM,YAAY,wDAAwD,CAACN,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,OAAOJ,EAAG,MAAMA,EAAG,MAAM,CAAEH,KAAKM,OAAO9E,MAAgB,WAAE2E,EAAG,MAAM,CAAGH,KAAK+T,YAAmH5T,EAAG,IAAI,CAACM,YAAY,8BAA8BE,GAAG,CAAC,MAAQZ,EAAIiU,QAAQ,CAACjU,EAAIoB,GAAG,oBAAxLhB,EAAG,IAAI,CAACM,YAAY,6BAA6BE,GAAG,CAAC,MAAQZ,EAAIiU,QAAQ,CAACjU,EAAIoB,GAAG,qBAA2HhB,EAAG,YAAYJ,EAAI6B,GAAG,CAACnB,YAAY,aAAaF,MAAM,CAAC,IAAM,MAAMI,GAAG,CAAC,MAAQ,SAASG,GAAQf,EAAImN,YAAa,GAAM,IAAMnN,EAAIoN,QAAQlH,MAAM,CAAC9L,MAAO4F,EAAQ,KAAEmG,SAAS,SAAUC,GAAMpG,EAAIqN,KAAKjH,GAAKd,WAAW,SAAS,YAAYtF,EAAIsN,aAAY,GAAO,CAAClN,EAAG,mBAAmB,CAACI,MAAM,CAAC,KAAO,aAAa,KAAO,cAAcR,EAAI6I,GAAI7I,EAAQ,MAAE,SAASuN,EAAQxE,GAAO,OAAO3I,EAAG,KAAK,CAAC1F,IAAI6S,EAAQlU,KAAKqH,YAAY,cAAc,CAACN,EAAG,KAAK,CAACM,YAAY,+DAA+DC,YAAY,CAAC,OAAS,SAAS,CAAG4M,EAAQ2G,QAAkQ9T,EAAG,IAAI,CAACO,YAAY,CAAC,cAAc,OAAO,OAAS,WAAWC,GAAG,CAAC,WAAa,SAASG,GAAQ,OAAOf,EAAImU,QAAQpL,EAAMhI,IAAS,MAAQ,SAASA,GAAQ,OAAOf,EAAImU,QAAQpL,MAAU,CAAC3I,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,uBAAuB,GAA/eJ,EAAG,IAAI,CAACO,YAAY,CAAC,cAAc,OAAO,OAAS,WAAWC,GAAG,CAAC,WAAa,SAASG,GAAQ,OAAOf,EAAImU,QAAQpL,EAAMhI,IAAS,MAAQ,SAASA,GAAQ,OAAOf,EAAImU,QAAQpL,MAAU,CAAC3I,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,uBAAuB,GAA4PJ,EAAG,IAAI,CAACO,YAAY,CAAC,MAAQ,QAAQ,cAAc,OAAO,YAAY,OAAO,cAAc,OAAO,OAAS,SAAS,CAACX,EAAIoB,GAAGpB,EAAIiC,GAAGsL,EAAQlU,SAAS+G,EAAG,IAAI,CAACO,YAAY,CAAC,cAAc,OAAO,YAAY,OAAO,OAAS,SAAS,CAACX,EAAIoB,GAAGpB,EAAIiC,GAAG,IAAImS,KAAwB,IAAnB7G,EAAQgC,UAAiB8E,cAAcjZ,MAAM,GAAI,QAAQgF,EAAG,IAAI,CAACO,YAAY,CAAC,cAAc,OAAO,eAAe,QAAQ,CAACP,EAAG,IAAI,CAACO,YAAY,CAAC,OAAS,UAAU,cAAc,QAAQC,GAAG,CAAC,WAAa,SAASG,GAAQ,OAAOf,EAAIyN,SAAS1E,IAAQ,MAAQ,SAAShI,GAAQ,OAAOf,EAAIyN,SAAS1E,MAAU,CAAC3I,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,wBAAwB,GAAGJ,EAAG,IAAI,CAACO,YAAY,CAAC,OAAS,UAAU,cAAc,OAAO,eAAe,QAAQC,GAAG,CAAC,WAAa,SAASG,GAAQ,OAAOf,EAAIsU,SAASvL,IAAQ,MAAQ,SAAShI,GAAQ,OAAOf,EAAIsU,SAASvL,MAAU,CAAC3I,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,mCAAmC,YAAW,IAAI,IAAI,GAAGR,EAAIS,YACvtF,GAAkB,CAAC,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACV,EAAIoB,GAAG,mBCuE1LmT,GAAA7N,EAAA,QAEe,IACfrN,KAAA,eACA8I,MAAA,WACAa,WAAA,CACA0K,gBAGArD,MAAA,CACAnC,QAAA,SAAAA,GACAA,EAEA,KAAAoC,OAAA,KAAAC,SAAAC,KAAA,CAAAC,UAAA,KAAAC,MAAAC,oBAGA,KAAAL,OAAAM,OACA,KAAAN,OAAA,QAIApW,OACA,OACAyZ,SAAA,EACAL,YAAA,KACAD,KAAA,GAGAO,UAAA,EACAC,UAAA,KACAf,MAAA,IACAkH,aAAA,EACA9L,SAAA,IAIA7E,QAAA,CACA,eAAA0F,GAEA/N,QAAA+I,IAAA,CAAAgF,UAEA,KAAAsE,KAAAtE,GAAAmL,UAEAlN,OAAAC,KAAA,cACA,KAAAoG,KAAAtE,GAAAmL,SAAA,GAGAlN,OAAAC,KAAA,qBAEA,GAAA7M,EAAA,UAGA,KAAAoa,QAAAC,MAAA,4EAGA,KAAAvM,SAAA,EACA,IAAAwM,EAAAH,GAAAI,IAAAC,QAAAC,KAAAC,UAAA,KAAAzH,KAAAtE,IAAA3O,EAAA,IACA,IAAAuH,EAAA,CACA,sBACA,CACAoT,KAAA3a,EAAA,GACA4a,IAAAN,EAAAO,aAGA/gB,QAAAoT,OAAAtN,IAAA,uBAAA2H,GACA3G,QAAA+I,IAAA7P,GACA,KAAAgU,SAAA,EACA,IAAAgN,EAAA,OACA,GAAAhhB,EAAAghB,MAAA,EACA,CACA,GAAAhhB,EAAAghB,MACAA,EAAA,WACAhhB,EAAAghB,MAAA,IACAA,EAAAhhB,EAAAghB,MAAA,YAEA,MAAA7N,QAAAC,OAAAtN,IAAA,6BACA,GAAAqN,EAAA8N,OAAAjhB,EAAAghB,MAGA,kBADA,KAAAV,QAAAC,MAAA,uDAIAzZ,QAAA+I,IAAA,CAAAmR,UACA,IAAAE,EAAA,KACA/b,EAAA,KAAAgU,KAAAtE,GAAA8K,KAAAzZ,EAAA,GACA,KAAAoa,QAAAa,QAAA,oBAAAH,EAAA,4BAAAI,OAAA,WAAAC,WAAA,WACAjd,MAAA,iBAQA,IAAA2P,EANAjN,QAAA+I,IAAA,YACAqR,EAAAlN,SAAA,QACAZ,OAAAtN,IAAA,0BAAA2H,GAKA,MAAAnJ,EAAA,IAAA/B,QAAAC,IAAAuR,EAAAvR,UACAsQ,OAAAC,KAAA,WAAA8B,EAAA1P,EAAA4O,SACAzP,EAEA4c,EAAAlN,SAAA,KAEA8D,OAAA,WAEAhR,QAAA+I,IAAA,eAMA,QAAAvP,EAAA,EAAAA,EAAA,KAAA6Y,KAAA3Y,OAAAF,IACA,KAAA6Y,KAAA7Y,GAAA0f,SAAA,GAEAzG,SAAA1E,GAEA,IAAAqM,EAAA,KAEA,KAAAZ,QAAAa,QAAA,8CAAAC,OAAA,SAAAC,WAAA,WACAjd,MAAA,iBACA8c,EAAA/H,KAAAtE,GAAAmL,UAEAlN,OAAAC,KAAA,cACAmO,EAAA/H,KAAAtE,GAAAmL,SAAA,GAGAnL,GAAA,IACAqM,EAAA/H,KAAAzX,OAAAmT,EAAA,GACA/B,OAAAC,KAAA,aAAA8B,OAGAiD,OAAA,gBAKAoB,OAAAzV,GAEA,KAAAwV,YAAA,EACAnS,QAAA+I,IAAA,CAAApM,UACAqP,OAAAC,KAAA,cAAAtP,EAAAqW,SAAArW,EAAAsW,WAEAgG,QAEA,KAAAD,aAAA,KAAAA,YACAhN,OAAAC,KAAA,gBAAA+M,cAEAG,QAAApL,EAAApR,GAIA,GAFAA,GACAA,EAAAmW,iBACA,KAAAT,KAAAtE,GAAAmL,QAIA,OAFAlN,OAAAC,KAAA,mBACA,KAAAoG,KAAAtE,GAAAmL,SAAA,GAGA,QAAA1f,EAAA,EAAAA,EAAA,KAAA6Y,KAAA3Y,OAAAF,IACA,KAAA6Y,KAAA7Y,GAAA0f,SAAA,EAEAlN,OAAAC,KAAA,cAAA7M,IACA,MAAAA,EACA,CACA,IAAAgb,EAAA,KACA,KAAAZ,QAAAa,QAAA,kDAAAC,OAAA,sBAAAC,WAAA,mBACAjd,MAAA,iBAEA,IAAA2P,EADAjN,QAAA+I,IAAA,0BAEA,MAAAvL,EAAA,IAAA/B,QAAAC,IAAAuR,EAAAvR,UACAsQ,OAAAC,KAAA,qBAAAgB,SACAzP,EACAwO,OAAAC,KAAA,UAAA8B,GACAqM,EAAA/H,KAAAtE,GAAAmL,SAAA,KAEAlI,OAAA,WACAhR,QAAA+I,IAAA,6BAKAiD,OAAAC,KAAA,UAAA8B,GACA,KAAAsE,KAAAtE,GAAAmL,SAAA,MASAnP,SAAA,CACAoD,gBACA,YAAA5H,OAAA9E,MAAAa,eAEA8L,oBACA,YAAAC,sBAGAC,cACA,KAAA/H,OAAA9E,MAAAa,cAAA,kBAEAsG,UAEAoE,OAAA4B,YAAA,0BACA,KAAAyE,KAAA,IACA1S,KAAA,OACAqM,OAAA4B,YAAA,qBAAA4M,GACA,KAAAnI,KAAArY,KAAA,CAAAqE,KAAAmc,EAAAnc,KAAAkW,SAAAiG,EAAAjG,SAAA2E,SAAA,EAAAL,KAAA2B,EAAA3B,QACAlZ,KAAA,OAEAqM,OAAA4B,YAAA,sCAAAmM,EAAAS,GACA,IAAAC,EAAA,CAAApc,KAAAmc,EAAAnc,KAAAkW,SAAAiG,EAAAjG,SAAA2E,SAAA,EAAAL,KAAA2B,EAAA3B,MACA,IAAAa,EAAAH,GAAAI,IAAAC,QAAAC,KAAAC,UAAAW,GAAAV,GACA,IAAApT,EAAA,CACA,sBACA,CACAoT,OACAC,IAAAN,EAAAO,mBAGA3N,OAAAU,IAAA,0BAAArG,IACAhH,KAAA,SCnSwV,MCQpV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCkEA,IACftB,KAAA,MACA2J,WAAA,CACA0S,UACAC,eACAC,kBACAC,oBACAC,eACAC,eACAC,mBAGA9hB,OAEA,OACA2M,WAGAiD,QAAA,WAEA,IAAAmS,EAAA/a,OAAAgb,WAAA,sBACA,KAAAC,WAAAF,GACAA,EAAArN,YAAA,KAAAuN,aAKA9S,QAAA,IACAC,eAAA,oJACA6S,WAAAF,GACAA,EAAAG,QAEA,KAAA7V,OAAA9E,MAAAmB,aAAA,EAKA,KAAA2D,OAAA9E,MAAAmB,aAAA,IAIAmI,SAAA,CACAsR,aACA,OACA,4EACA9V,OAAA9E,MAAAgB,WACA,mDAAA8D,OAAA9E,MACAiB,WACA,uBAAA6D,OAAA9E,MAAAiB,cAIA4L,cACA,KAAA/H,OAAA9E,MAAAa,cAAA,iBACA,KAAAiE,OAAA9E,MAAAe,MAAA,UC3I+T,MCO3T,GAAY,eACd,GACAuD,EACAe,GACA,EACA,KACA,KACA,MAIa,M,+CCff,MAAMwV,GAAY,CACd,mBAAsB,iBACtB,6BAAgC,sDAChC,mBAAsB,iBACtB,kBAAqB,2BACrB,6BAAgC,6BAChC,MAAS,GACT,gCAAmC,CAC/B,SAEJ,6BAAgC,GAChC,8BAAiC,CAC7B,SAEJ,8BAAiC,MACjC,sBAAyB,GACzB,yCAA4C,CACxC,wBAA2B,EAC3B,yBAA4B,IAEhC,oCAAuC,CACnC,SAEJ,uBAA0B,CACtB,CACI,KAAQ,YACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,iBACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,oBACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,gBACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,cACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,eACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,YACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,aACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,qBACR,SAAY,mEACZ,OAAU,kBAEd,CACI,KAAQ,aACR,SAAY,mEACZ,OAAU,mBAGlB,+BAAkC,iBAClC,2BAA8B,CAC1B,CACI,UAAa,gBACb,OAAU,kBAEd,CACI,UAAa,aACb,OAAU,kBAEd,CACI,UAAa,mBACb,OAAU,kBAEd,CACI,UAAa,iBACb,OAAU,kBAEd,CACI,UAAa,cACb,OAAU,mBAGlB,yBAA4B,cAC5B,gCAAmC,kBAIxBA,U,oFCvGA,IACbC,a,wJCIFC,QAAQC,UAAUC,IAmBlBrb,aAAIC,IAAIqb,MACR,IAAIC,GAAclQ,EAAQ,QA8C1BmQ,QAAQ5E,IAAI6E,SACZD,QAAQ5E,IAAI8E,SACZF,QAAQ5E,IAAI+E,SACZH,QAAQ5E,IAAIgF,SACZJ,QAAQ5E,IAAIiF,SACZL,QAAQ5E,IAAIkF,SACZN,QAAQ5E,IAAImF,SACZP,QAAQ5E,IAAIoF,SACZR,QAAQ5E,IAAIqF,SACZT,QAAQ5E,IAAIsF,SACZV,QAAQ5E,IAAIuF,SACZX,QAAQ5E,IAAIwF,SACZZ,QAAQ5E,IAAIyF,SACZb,QAAQ5E,IAAI0F,SACZd,QAAQ5E,IAAI2F,SACZf,QAAQ5E,IAAI4F,SACZhB,QAAQ5E,IAAI6F,SACZjB,QAAQ5E,IAAI8F,SACZlB,QAAQ5E,IAAI+F,SACZnB,QAAQ5E,IAAIgG,SACZpB,QAAQ5E,IAAIiG,SACZrB,QAAQ5E,IAAIkG,SACZtB,QAAQ5E,IAAImG,SACZvB,QAAQ5E,IAAIoG,SACZxB,QAAQ5E,IAAIqG,SACZzB,QAAQ5E,IAAIsG,SACZ1B,QAAQ5E,IAAIuG,SACZ3B,QAAQ5E,IAAIwG,SACZ5B,QAAQ5E,IAAIyG,SACZ7B,QAAQ5E,IAAI0G,SACZ9B,QAAQ5E,IAAI2G,SACZ/B,QAAQ5E,IAAI4G,SACZhC,QAAQ5E,IAAIpS,gBACZgX,QAAQ5E,IAAI6G,SACZjC,QAAQ5E,IAAI8G,SACZlC,QAAQ5E,IAAI+G,SACZnC,QAAQ5E,IAAIgH,SACZpC,QAAQ5E,IAAIiH,SACZrC,QAAQ5E,IAAIkH,SACZtC,QAAQ5E,IAAImH,SAEZ/d,aAAIkH,UAAU,oBAAqB8W,SACnChe,aAAIC,IAAIge,SACRje,aAAIC,IAAIsb,IACRvb,aAAIC,IAAIie,MACRle,aAAIme,OAAOC,eAAgB,EAC3Bpe,aAAIC,IAAIC,QACRF,aAAIC,IAAIoe,MACRre,aAAIC,IAAIqe,SACRte,aAAIC,IAAIse,SACRve,aAAIwe,MAAM,CACR3lB,KAAM,WAEJ,MAAO,CACL4lB,QAAO,MAMb,IAAIze,aAAI,CACN0e,eACAC,cACAC,mBACAla,OAAQma,GAAKA,EAAEC,MACdC,OAAO,S,oCC3IV,oHAKOC,eAAeC,IAElB,aAAa9R,OAAK+R,qBAcfF,eAAeG,EAAU/W,EAAMgX,EAAQ,UAAWC,GAAY,GACjE,IAAIC,EAAelX,EAAKmX,QAAQ,IAAK,OAAOA,QAAQ,IAAK,OAAOA,QAAQ,IAAK,OAC7E,MAAMC,QAAqBrS,OAAK+R,qBAC1BO,EAAYC,OAAOC,KACrB,CACAxM,IAAK,uDAAuD/K,EAC5DwX,OAAQ,MACRnT,QAAS,CACL,uBACA,qEAGJ,CACIoT,WAAYL,EAAYM,YACxBC,WAAYP,EAAYQ,gBACxBC,cAAeT,EAAYU,cAE/B,CAAEC,OAAQ,iBAAkBC,QAAS,OAEzC,IACI,IAAIlmB,QAAemmB,MAAM,uDAAuDf,EAC5E,CACIF,MAAOA,EACPQ,OAAQ,MACRnT,QAAUgT,EAAUhT,UAExB,GAAG4S,EACH,CACI,IAAIiB,EAAOpmB,EAAOuS,QAAQ9N,IAAI,QAG9B,OAFA2hB,EAAOA,EAAKf,QAAQ,SAAU,IAC9B5f,QAAQ+I,IAAI4X,GACL,CAACrN,IAAIC,sBAAsBhZ,EAAOqmB,QAAQD,GAGzD,OAAQrN,IAAIC,sBAAsBhZ,EAAOqmB,QAC5C,MAAMtlB,GACH0E,QAAQ6gB,KAAKvlB,M,8CCzDrBF,EAAOD,QAAU,IAA0B,4B,6DCA3C,W,iICAA,IAAI4J,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,OAAO,OAAS,OAAO,QAAU,YAAY,QAAU,MAAM,MAAQ,6BAA6B,cAAc,iCAAiC,CAACJ,EAAG,QAAQ,CAACJ,EAAIoB,GAAG,sBAAsBhB,EAAG,IAAI,CAACI,MAAM,CAAC,OAAS,OAAO,eAAe,IAAI,KAAO,OAAO,YAAY,YAAY,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,uCAAuC,KAAO,UAAU,YAAY,YAAY,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,uCAAuC,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,UAAY,kCAAkC,CAACJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,mOAAmO,QAAU,gBAAgBJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,wOAAwOJ,EAAG,OAAO,CAACM,YAAY,mBAAmBF,MAAM,CAAC,EAAI,gIAC1vCM,EAAkB,I,oCCDtB,W,iJCKA,SAASgb,IACR,IAAIC,EAAY7gB,OAAOqQ,UAAUwQ,UAChCC,EAAW9gB,OAAOqQ,UAAUyQ,SAC5BC,EAAiB,CAAC,YAAa,WAAY,SAAU,UACrDC,EAAmB,CAAC,QAAS,QAAS,UAAW,SACjDC,EAAe,CAAC,SAAU,OAAQ,QAClCC,EAAK,KAaN,OAX0C,IAAtCH,EAAelO,QAAQiO,GACzBI,EAAK,UACwC,IAApCD,EAAapO,QAAQiO,GAC9BI,EAAK,OAC4C,IAAxCF,EAAiBnO,QAAQiO,GAClCI,EAAK,UACI,UAAU3U,KAAKsU,GACxBK,EAAK,WACKA,GAAM,QAAQ3U,KAAKuU,KAC7BI,EAAK,SAEAA,EAKD,SAASC,IACf,MAAc,UAAXnhB,OAAOkhB,IAA2B,OAAXlhB,OAAOkhB,GACiB,OAA1CrlB,SAASulB,+BACE,WAAXphB,OAAOkhB,IAA4B,WAAXlhB,OAAOkhB,GACF,OAA7BrlB,SAASwlB,kBAETC,OAAOld,OAAOpE,OAAOsV,YAAcgM,OAAOjd,QAAQrE,OAAOuV,YAnC7D,WAAYgM,aAChBA,WAAWvhB,OAASuhB,YACrBvhB,OAAOwhB,MAASC,GACR,IAAIlmB,QAAQC,GAAW6C,WAAW7C,EAASimB,IAuBnDzhB,OAAOkhB,GAAKN,IAsBL,MAAMc,EACZ/M,YAAYgN,QACAvjB,IAARujB,GACF5c,KAAK6c,GAAGD,GACT5c,KAAK8c,MAAQ3I,KAAK4I,MAEnBC,QAAQC,GAEP,GADAC,sBAAsB,KAAKld,KAAKgd,QAAQC,UACvB5jB,IAAd2G,KAAKmd,KAAmB,CAC1B,IAAIJ,EAAM5I,KAAK4I,MACXK,EAAUL,EAAM/c,KAAK8c,MACtBM,EAAUpd,KAAKmd,OACjBnd,KAAK8c,MAAQC,EAAOK,EAAUpd,KAAKmd,KACnCF,UAIDA,IAED,OAAOjd,KAER6c,GAAGD,GACF5c,KAAKmd,KAAO,IAAKP,GAyEZ,SAASS,EAAU5iB,GACzB,OAAO,IAAI4T,IAAIpT,OAAOqiB,SAAS3mB,MAAM4mB,aAAaC,IAAI/iB,GAEhD,SAASgjB,EAAUhjB,GACzB,OAAO,IAAI4T,IAAIpT,OAAOqiB,SAAS3mB,MAAM4mB,aAAaxjB,IAAIU,GAzCvDyU,KAAKwO,MAAQ,SAASC,EAAKjR,EAAKC,GAC/B,OAAOuC,KAAKxC,IAAIwC,KAAKvC,IAAID,EAAIiR,GAAKhR,IAEnCuC,KAAKuD,KAAO,SAAUpB,EAAGuM,EAAG3nB,GAC3B,OAAOob,GAAKuM,EAAIvM,GAAKpb,GAEtBiZ,KAAK2O,OAAS,MACb,IAAIA,EAAS3O,KAAK2O,OAClB,OAAO,SAASnR,EAAKC,GACpB,YAAStT,IAANsT,OACOtT,IAANqT,EACKmR,KAGPlR,EAAMD,EACCmR,IAASlR,GAIVkR,KAAUlR,EAAID,GAAKA,IAbf,GAiBdwC,KAAK4O,UAAY,SAASpR,EAAKC,GAC9B,OAA2C,EAApCuC,KAAK6O,MAAM7O,KAAK2O,OAAOnR,EAAKC,EAAI,KAExCjY,OAAOmF,eAAemkB,MAAMrpB,UAAW,OAAQ,CAC9CoF,IAAK,WACJ,OAAOiG,KAAKA,KAAKvL,OAAO,MAG1BC,OAAOmF,eAAemkB,MAAMrpB,UAAW,QAAS,CAC/CoF,IAAK,WACJ,OAAOiG,KAAK,M,4BCzIP,MAAMie,EAAQ,CACjBC,SAAU,IAAIlO,QACdmO,SAAU,IAAInO,QACdoO,WAAY,IAAIpO,QAChBqO,WAAY,IAAIrO,QAChBsO,WAAY,IAAItO,QAChBuO,WAAY,IAAIvO,QAChBwO,gBAAiB,IAAIxO,QACrByO,WAAY,IAAIzO,QAChB0O,UAAW,EACXC,gBAAiB,IAAI3O,QACrB4O,WAAY,IAAI5O,QAChB6O,UAAW,EACXC,gBAAiB,IAAI9O,QACrB+O,WAAY,IAAI/O,QAChBgP,UAAW,EACXC,gBAAiB,IAAIjP,QACrBkP,WAAY,IAAIlP,QAChBmP,UAAW,EACXC,gBAAiB,IAAIpP,QACrBqP,WAAY,IAAIrP,QAChBsP,UAAW,EACXC,eAAgB,IAAIvP,QACpBwP,UAAW,IAAIxP,QACfyP,SAAU,EACVC,kBAAmB,IAAI1P,QACvB2P,YAAa,EACbC,kBAAmB,IAAI5P,QACvB6P,YAAa,EACbC,kBAAmB,IAAI9P,QACvB+P,YAAa,EACbC,kBAAmB,IAAIhQ,QACvBiQ,YAAa,EACbC,mBAAoB,IAAIlQ,QACxBmQ,aAAc,EACdC,mBAAoB,IAAIpQ,QACxBqQ,aAAc,EACdC,iBAAkB,IAAItQ,QACtBuQ,WAAY,EACZC,iBAAkB,IAAIxQ,QACtByQ,WAAY,EACZC,kBAAmB,IAAI1Q,QACvB2Q,YAAa,EACbC,kBAAmB,IAAI5Q,QACvB6Q,YAAa,EACbvhB,OAAQ,GC3CL,MAAMwhB,EAeZ,kBAAkB,OAAOA,EAAeC,WAkIxC,kBACC,MAAMC,EAAY,GAClBA,EAAUjsB,KAAK,IAAIib,QAAc,EAAE,GAAI,IACvCgR,EAAUjsB,KAAK,IAAIib,SAAe,IAAK,EAAE,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,GAAG,GAAI,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,GAAG,IAAK,IAC1CgR,EAAUjsB,KAAK,IAAIib,QAAc,IAAK,EAAE,IACxCgR,EAAUjsB,KAAK,IAAIib,SAAe,GAAG,GAAI,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,GAAG,IAAK,IAC1CgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,EAAE,IACtCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,IAAK,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,IAAK,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,EAAE,IACtCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,IAAK,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,EAAI,IACxCgR,EAAUjsB,KAAK,IAAIib,QAAc,IAAK,EAAE,IACxCgR,EAAUjsB,KAAK,IAAIib,QAAc,IAAK,EAAE,IACxCgR,EAAUjsB,KAAK,IAAIib,QAAc,IAAK,EAAE,IACxCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,EAAE,IACtCgR,EAAUjsB,KAAK,IAAIib,SAAe,IAAK,EAAE,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,IAAK,EAAE,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,IAAK,EAAE,IACzCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,EAAE,MACtCgR,EAAUjsB,KAAK,IAAIib,SAAe,EAAE,EAAE,MAEtCgR,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,MAAQ,KAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,MAAQ,OAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,MAAQ,OAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,MAAQ,OAAQ+B,eAAe,MAE1EiP,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,MAAQ,OAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAQ,EAAQ,GAAQ+B,eAAe,MAEzEiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAE1EiP,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,OAAS,OAAQ+B,eAAe,MAC3EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,EAAQ,GAAQ+B,eAAe,MAE1EiP,EAAUjsB,KAAK,IAAIib,SAAe,OAAS,OAAS,OAAQ+B,eAAe,MAC3EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,GAAS,GAAQ+B,eAAe,MAC3EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,GAAS,GAAQ+B,eAAe,MAC3EiP,EAAUjsB,KAAK,IAAIib,SAAe,GAAS,GAAS,GAAQ+B,eAAe,MAE3EiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,MAAQ,KAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,MAAQ,OAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,MAAQ,OAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,MAAQ,OAAQ+B,eAAe,MAEzEiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,MAAQ,OAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MAEzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MAEzEiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,OAAS,OAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MACzEiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,EAAQ,GAAQ+B,eAAe,MAEzEiP,EAAUjsB,KAAK,IAAIib,QAAc,OAAS,OAAS,OAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,GAAS,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,GAAS,GAAQ+B,eAAe,MAC1EiP,EAAUjsB,KAAK,IAAIib,QAAc,GAAS,GAAS,GAAQ+B,eAAe,MAG1E,MAAMkP,EAAQ,GACd,IAAI,IAAI1sB,EAAE,EAAGA,EAAEysB,EAAUvsB,OAAQF,IAAI,CACpC,MAAM2sB,EAAO,IAAIlR,OAEjBkR,EAAKtQ,SAASK,KAAK+P,EAAUzsB,IAC7B0sB,EAAMlsB,KAAKmsB,IACoB,GAA5BJ,EAAeK,QAAQ5sB,IACzB0sB,EAAMH,EAAeK,QAAQ5sB,IAAIyd,IAAIkP,GAEvC,OAAOD,GAER/N,eAxOY4N,EAAc,UACT,EACf,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAClD,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzD,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KACzD5N,eALW4N,EAAc,aAMN,CACnB,MAAM,OAAO,QAAQ,SAAS,OAAO,QAAQ,SAAS,QAAQ,SAAS,SAAS,OAAO,OACvF,YAAY,OAAO,WAAW,SAAS,YAAY,OAAO,WAAW,SAAS,OAAO,OACrF,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAClG,eAAe,eAAe,eAAe,eAAe,aAAa,aAAa,aAAa,aACnG,cAAc,cAAc,cAAc,cAAc,aAAa,aAAa,aAAa,aAC/F,aAAa,aAAa,aAAa,aAAa,cAAc,cAAc,cAAc,cAC9F,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,eACvF5N,eAdW4N,EAAc,WAgBR,CACjBM,KAAO,EACPC,cAAgB,EAChBC,cAAgB,EAChBC,UAAY,EACZC,aAAe,EACfC,aAAe,EACfC,SAAW,EACXC,MAAQ,EACRC,MAAQ,EACRC,WAAa,EACbC,KAAO,GACPC,KAAO,GACPC,aAAe,GACfC,aAAe,GACfC,aAAe,GACfC,SAAW,GACXC,cAAgB,GAChBC,cAAgB,GAChBC,cAAgB,GAChBC,UAAY,GACZC,UAAY,GACZC,SAAW,GACXC,mBAAqB,GACrBC,uBAAyB,GACzBC,iBAAmB,GACnBC,mBAAqB,GACrBC,uBAAyB,GACzBC,iBAAmB,GACnBC,oBAAsB,GACtBC,wBAA0B,GAC1BC,kBAAoB,GACpBC,kBAAoB,GACpBC,sBAAwB,GACxBC,gBAAkB,GAClBC,oBAAsB,GACtBC,wBAA0B,GAC1BC,kBAAoB,GACpBC,kBAAoB,GACpBC,sBAAwB,GACxBC,gBAAkB,GAClBC,kBAAoB,GACpBC,sBAAwB,GACxBC,gBAAkB,GAClBC,mBAAqB,GACrBC,uBAAyB,GACzBC,iBAAmB,GACnBC,iBAAmB,GACnBC,qBAAuB,GACvBC,eAAiB,GACjBC,mBAAqB,GACrBC,uBAAyB,GACzBC,iBAAmB,GACnBC,KAAO,KACPtR,eAtEW4N,EAAc,cAwEL,CACpB2D,IAAM,EACNC,KAAO,EACPC,MAAQ,EACRC,OAAS,EACTC,KAAO,EACPC,MAAQ,EACRC,OAAS,EACTpD,MAAQ,EACRqD,OAAS,EACTC,OAAS,EACTnD,KAAO,GACPC,KAAO,GACPmD,UAAY,GACZC,KAAO,GACPC,SAAW,GACXC,OAAS,GACTC,UAAY,GACZC,KAAO,GACPC,SAAW,GACXC,OAAS,GACTC,KAAO,GACPC,KAAO,GACPC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,aAAe,GACfC,aAAe,GACfC,aAAe,GACfC,aAAe,GACfC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,YAAc,GACdC,UAAY,GACZC,UAAY,GACZC,UAAY,GACZC,UAAY,GACZC,WAAa,GACbC,WAAa,GACbC,WAAa,GACbC,WAAa,KAEbjV,eAxIW4N,EAAc,YAyIP,CAClB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACzC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1C,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1C,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KA6FlC,MAAMsH,EAuDZ,sBAAsBxtB,EAAQytB,EAAOC,GACpC,IAAIrH,EAAQ,GACZ,IAAI,IAAI1sB,EAAE,EAAGA,EAAE+zB,EAAI7zB,OAAQF,IAC3B,CACC,IAAIg0B,EAAQF,EAAMG,aAAa7c,QAAO,SAAS6J,GAAQ,OAAOA,EAAKiT,QAAUH,EAAI/zB,GAAG,MAEpF,IAAI6E,EAAO,GAKX,GAHCA,EADEmvB,EAAM9zB,OAAO,EACR8zB,EAAM,GAAGt0B,KAETq0B,EAAI/zB,GAAG,GACN,IAAN6E,EACH,CACC,IAAIsvB,EAAQ9tB,EAAO+tB,gBAAiBvvB,QAC1BC,GAAPqvB,GAAoBH,EAAM9zB,OAAO,QAAwB4E,GAAnBkvB,EAAM,GAAGzW,UAEjD4W,EAAME,0BAA0B,IAAI5Y,QAAiBuY,EAAM,GAAGzW,SAASkE,GAAGuS,EAAM,GAAGzW,SAAS+W,GAAGN,EAAM,GAAGzW,SAASgX,EAAEP,EAAM,GAAGzW,SAASiX,IAEtI9H,EAAMlsB,KAAK2zB,QAGXzH,EAAMlsB,UAAKsE,GAEb,OAAO4nB,EAER,gBAAgBrmB,EAAQytB,GACvB,OAAOD,EAAgBY,eAAepuB,EAAQytB,EAAO3zB,OAAOu0B,QAAQb,EAAgBc,YAErFhW,eAnFYkV,EAAe,WACT,CACjBhH,KAAM,OACNC,cAAe,gBACfC,cAAe,gBACfC,UAAW,YACXC,aAAc,eACdC,aAAc,eACdC,SAAU,WACVC,MAAO,QACPC,MAAO,SACPC,WAAY,SACZC,KAAM,OACNC,KAAM,OACNC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,SAAU,WACVC,cAAe,gBACfC,cAAe,gBACfC,cAAe,gBACfC,UAAW,YACXC,UAAW,WACXC,SAAU,UACVC,mBAAoB,cACpBC,uBAAwB,cACxBC,iBAAkB,cAClBC,mBAAoB,cACpBC,uBAAwB,cACxBC,iBAAkB,cAClBC,oBAAqB,eACrBC,wBAAyB,eACzBC,kBAAmB,eACnBC,kBAAmB,aACnBC,sBAAuB,aACvBC,gBAAiB,aACjBC,oBAAqB,cACrBC,wBAAyB,cACzBC,kBAAmB,cACnBC,kBAAmB,aACnBC,sBAAuB,aACvBC,gBAAiB,aACjBC,kBAAmB,aACnBC,sBAAuB,aACvBC,gBAAiB,aACjBC,mBAAoB,cACpBC,uBAAwB,cACxBC,iBAAkB,cAClBC,iBAAkB,YAClBC,qBAAsB,YACtBC,eAAgB,YAChBC,mBAAoB,aACpBC,uBAAwB,aACxBC,iBAAkB,eAgCb,MAAM4E,EAuDZ,gBAAgBvuB,EAAQytB,GACvB,OAAOD,EAAgBY,eAAepuB,EAAQytB,EAAO3zB,OAAOu0B,QAAQE,EAAeD,YAEpFhW,eA1DYiW,EAAc,WACR,CACjB/H,KAAM,OACNC,cAAe,gBACfC,cAAe,gBACfC,UAAW,YACXC,aAAc,eACdC,aAAc,eACdC,SAAU,WACVC,MAAO,QACPC,MAAO,SACPC,WAAY,SACZC,KAAM,OACNC,KAAM,OACNC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,SAAU,WACVC,cAAe,gBACfC,cAAe,gBACfC,cAAe,gBACfC,UAAW,YACXC,UAAW,WACXC,SAAU,UACVC,mBAAuB,kBACvBC,uBAA0B,kBAC1BC,iBAAsB,kBACtBC,mBAAuB,kBACvBC,uBAA0B,kBAC1BC,iBAAsB,kBACtBC,oBAAwB,mBACxBC,wBAA2B,mBAC3BC,kBAAsB,mBACtBC,kBAAsB,iBACtBC,sBAAyB,iBACzBC,gBAAqB,iBACrBC,oBAAwB,kBACxBC,wBAA2B,kBAC3BC,kBAAsB,kBACtBC,kBAAsB,iBACtBC,sBAAyB,iBACzBC,gBAAqB,iBACrBC,kBAAsB,iBACtBC,sBAAyB,iBACzBC,gBAAqB,iBACrBC,mBAAuB,kBACvBC,uBAA0B,kBAC1BC,iBAAsB,kBACtBC,iBAAsB,gBACtBC,qBAAyB,gBACzBC,eAAoB,gBACpBC,mBAAuB,iBACvBC,uBAA0B,iBAC1BC,iBAAsB,mBAOjB,MAAM6E,EAoEZ,gBAAgBC,GACf,MAAMC,EAAM,GACZ,IAAI,IAAKhB,EAAKzmB,KAAOnN,OAAOu0B,QAAQG,EAAYF,UAC/CI,EAAIznB,GAAMwnB,EAAIE,SAASC,sBAAsBlB,GAC9C,OAAOgB,EAER,mBAAmBD,GAClB,MAAMC,EAAM,GACZ,IAAI,IAAKhB,EAAKzmB,KAAOnN,OAAOu0B,QAAQG,EAAYF,UAC/CI,EAAIznB,GAAMwnB,EAAIE,SAASE,eAAenB,GACvC,OAAOgB,GAERpW,eAhFYkW,EAAW,YACJ,CAClB,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,MAAQ,GACR,MAAQ,GACR,IAAM,GACN,MAAQ,GACR,QAAU,KACVlW,eAZWkW,EAAW,WAaL,CACjB,CAACM,OAA2BtI,MAA0B,EACtD,CAACsI,OAA2BrI,eAA0B,EACtD,CAACqI,OAA2BpI,eAA0B,EACtD,CAACoI,OAA2BnI,WAA0B,EACtD,CAACmI,OAA2BlI,cAA0B,EACtD,CAACkI,OAA2BjI,cAA0B,EACtD,CAACiI,OAA2BhI,UAA0B,EACtD,CAACgI,OAA2B/H,OAA0B,EACtD,CAAC+H,OAA2B9H,OAA0B,EACtD,CAAC8H,OAA2B7H,YAA0B,EACtD,CAAC6H,OAA2B5H,MAA0B,GACtD,CAAC4H,OAA2B3H,MAA0B,GACtD,CAAC2H,OAA2B1H,cAA0B,GACtD,CAAC0H,OAA2BzH,cAA0B,GACtD,CAACyH,OAA2BxH,cAA0B,GACtD,CAACwH,OAA2BvH,UAA0B,GACtD,CAACuH,OAA2BtH,eAA0B,GACtD,CAACsH,OAA2BrH,eAA0B,GACtD,CAACqH,OAA2BpH,eAA0B,GACtD,CAACoH,OAA2BnH,WAA0B,GACtD,CAACmH,OAA2BlH,WAA0B,GACtD,CAACkH,OAA2BjH,UAA0B,GACtD,CAACiH,OAA2BC,sBAA0B,GACtD,CAACD,OAA2BhH,oBAA0B,GACtD,CAACgH,OAA2B9G,kBAA0B,GACtD,CAAC8G,OAA2B7G,oBAA0B,GACtD,CAAC6G,OAA2B5G,wBAA0B,GACtD,CAAC4G,OAA2B3G,kBAA0B,GACtD,CAAC2G,OAA2B1G,qBAA0B,GACtD,CAAC0G,OAA2BzG,yBAA0B,GACtD,CAACyG,OAA2BxG,mBAA0B,GACtD,CAACwG,OAA2BvG,mBAA0B,GACtD,CAACuG,OAA2BtG,uBAA0B,GACtD,CAACsG,OAA2BrG,iBAA0B,GACtD,CAACqG,OAA2BpG,qBAA0B,GACtD,CAACoG,OAA2BnG,yBAA0B,GACtD,CAACmG,OAA2BlG,mBAA0B,GACtD,CAACkG,OAA2BE,qBAA0B,GACtD,CAACF,OAA2BjG,mBAA0B,GACtD,CAACiG,OAA2B/F,iBAA0B,GACtD,CAAC+F,OAA2B9F,mBAA0B,GACtD,CAAC8F,OAA2B7F,uBAA0B,GACtD,CAAC6F,OAA2B5F,iBAA0B,GACtD,CAAC4F,OAA2B3F,oBAA0B,GACtD,CAAC2F,OAA2B1F,wBAA0B,GACtD,CAAC0F,OAA2BzF,kBAA0B,GACtD,CAACyF,OAA2BxF,kBAA0B,GACtD,CAACwF,OAA2BvF,sBAA0B,GACtD,CAACuF,OAA2BtF,gBAA0B,GACtD,CAACsF,OAA2BrF,oBAA0B,GACtD,CAACqF,OAA2BpF,wBAA0B,GACtD,CAACoF,OAA2BnF,kBAA0B,KAiBjD,MAAMsF,EAOZja,YAAYqR,GACXjhB,KAAK8pB,aAAehJ,EAAeiJ,WACnC/pB,KAAKgqB,uBAAyBhqB,KAAK8pB,aAAaxB,IAAI,IAC5C,IAAItY,SAEZhQ,KAAKie,MAAQA,EACbje,KAAKiqB,OAAS,GACdjqB,KAAKkqB,aAAe,GACpBlqB,KAAKmqB,YAAc,QACR9wB,IAAR4nB,GACFjhB,KAAKoqB,UAAUnJ,GAEjBmJ,UAAUnJ,IAERjhB,KAAKqqB,YACLrqB,KAAKsqB,aACLtqB,KAAKuqB,gBACLvqB,KAAKwqB,kBACLxqB,KAAKyqB,OACFzqB,KAAK0qB,WAAWzJ,GAGrByJ,WAAWzJ,GACV,MAAMqJ,EAAe,CACpBrJ,EAAMH,EAAeoI,SAAS9H,MAC9BH,EAAMH,EAAeoI,SAAS7H,eAC9BJ,EAAMH,EAAeoI,SAAS5H,eAC9BL,EAAMH,EAAeoI,SAAS3H,WAC9BN,EAAMH,EAAeoI,SAAS1H,cAC9BP,EAAMH,EAAeoI,SAASzH,cAC9BR,EAAMH,EAAeoI,SAASxH,UAC9BT,EAAMH,EAAeoI,SAASvH,OAC9BV,EAAMH,EAAeoI,SAAStH,OAC9BX,EAAMH,EAAeoI,SAASrH,YAC9BZ,EAAMH,EAAeoI,SAASpH,MAC9Bb,EAAMH,EAAeoI,SAASnH,MAC9Bd,EAAMH,EAAeoI,SAASlH,cAC9Bf,EAAMH,EAAeoI,SAASjH,cAC9BhB,EAAMH,EAAeoI,SAAShH,cAC9BjB,EAAMH,EAAeoI,SAAS/G,UAC9BlB,EAAMH,EAAeoI,SAAS9G,eAC9BnB,EAAMH,EAAeoI,SAAS7G,eAC9BpB,EAAMH,EAAeoI,SAAS5G,eAC9BrB,EAAMH,EAAeoI,SAAS3G,WAC9BtB,EAAMH,EAAeoI,SAAS1G,WAC9BvB,EAAMH,EAAeoI,SAASzG,UAC9BxB,EAAMH,EAAeoI,SAASxG,oBAC9BzB,EAAMH,EAAeoI,SAASvG,wBAC9B1B,EAAMH,EAAeoI,SAAStG,uBAC9BvpB,EACA4nB,EAAMH,EAAeoI,SAASrG,oBAC9B5B,EAAMH,EAAeoI,SAASpG,wBAC9B7B,EAAMH,EAAeoI,SAASnG,uBAC9B1pB,EACA4nB,EAAMH,EAAeoI,SAASlG,qBAC9B/B,EAAMH,EAAeoI,SAASjG,yBAC9BhC,EAAMH,EAAeoI,SAAShG,wBAC9B7pB,EACA4nB,EAAMH,EAAeoI,SAAS/F,mBAC9BlC,EAAMH,EAAeoI,SAAS9F,uBAC9BnC,EAAMH,EAAeoI,SAAS7F,sBAC9BhqB,EACA4nB,EAAMH,EAAeoI,SAAS5F,qBAC9BrC,EAAMH,EAAeoI,SAAS3F,yBAC9BtC,EAAMH,EAAeoI,SAAS1F,wBAC9BnqB,EACA4nB,EAAMH,EAAeoI,SAASzF,mBAC9BxC,EAAMH,EAAeoI,SAASxF,uBAC9BzC,EAAMH,EAAeoI,SAASvF,sBAC9BtqB,EACA4nB,EAAMH,EAAeoI,SAAStF,mBAC9B3C,EAAMH,EAAeoI,SAASrF,uBAC9B5C,EAAMH,EAAeoI,SAASpF,sBAC9BzqB,EACA4nB,EAAMH,EAAeoI,SAASnF,oBAC9B9C,EAAMH,EAAeoI,SAASlF,wBAC9B/C,EAAMH,EAAeoI,SAASjF,uBAC9B5qB,EACA4nB,EAAMH,EAAeoI,SAAShF,kBAC9BjD,EAAMH,EAAeoI,SAAS/E,sBAC9BlD,EAAMH,EAAeoI,SAAS9E,qBAC9B/qB,EACA4nB,EAAMH,EAAeoI,SAAS7E,oBAC9BpD,EAAMH,EAAeoI,SAAS5E,wBAC9BrD,EAAMH,EAAeoI,SAAS3E,uBAC9BlrB,GAGD,IAAIgxB,EAAcC,EAAa,GAC3BG,EAAQ,KACRE,EAASL,EAAa,GAAGK,OAC7B,MAAkB,OAAXA,EAAiB,CACvB,GAAIA,aAAkB3a,QAAa,CAClCya,EAAQE,EACR,MAEDA,EAASA,EAAOA,OAGjB,MAAMN,EAAYM,QAAmC,SAAzBN,EAAYM,OAAOpzB,KAC9C8yB,EAAYA,EAAYM,OAEzB,MAAMC,EAAqBP,EAAYQ,mBAAmB,IAAI7a,SAAoB4B,QAAQkZ,SACpFP,EAAkBD,EAAahC,IAAKpH,GAClCA,EACN0J,EAAqBhZ,QAAQmZ,SAAS7J,EAAK2J,mBAAmB,IAAI7a,UAClE,IAAIA,SAGAwa,EAAoBvJ,EAAM,GAAG9O,iBAAiB,IAAInC,SAAiB6Y,EACzE,MAAO,CAACwB,EAAaC,EAAcC,EAAiBC,EAAmBC,GAGxEO,aAAa/J,EAAOgK,GAAO,GAC1B,MAAMC,EAAOjK,EAAM,GAAG9O,iBAAiB,IAAInC,SACrCwR,EAAeP,EAAM,GAAG9O,iBAAiB,IAAInC,SAC7CyR,EAAeR,EAAM,GAAG9O,iBAAiB,IAAInC,SAC7C0R,EAAWT,EAAM,GAAG9O,iBAAiB,IAAInC,SACzCqR,EAAgBJ,EAAM,GAAG9O,iBAAiB,IAAInC,SAC9Cmb,EAAS9J,EAAczP,QAAQI,IAAIwP,GAAczP,eAAe,IAChEqZ,EAAOH,EAAS,GAAOvJ,EAASmH,EACtC,OAAOrH,EAAanP,WAAWoP,GAAgBA,EAAapP,WAAWqP,GAAYyJ,EAAO9Y,WAAW6Y,GAAQE,EAG9GC,SAASC,GAERtrB,KAAKie,MAAQqN,EAIdC,aAAaC,GACZxrB,KAAKie,MAAM3e,OAAS,EACpB,IAAI,IAAI/K,EAAE,EAAGA,EAAEi3B,EAAU/2B,OAAQF,IAAG,KAAAk3B,EACf,QAApBA,EAAAzrB,KAAK8pB,aAAav1B,UAAE,IAAAk3B,GAApBA,EAAsB3Z,SAAS4Z,kBAAkBF,EAAUj3B,KAE7Do3B,eAAeC,EAAaC,GAC3B7rB,KAAKie,MAAM3e,OAAS,EACpBU,KAAK8pB,aAAa,GAAGlZ,SAASK,KAAK2a,GACnC,IAAI,IAAIr3B,EAAE,EAAGA,EAAEs3B,EAAQp3B,OAAQF,IAC9ByL,KAAK8pB,aAAav1B,GAAGqc,SAAS4B,YAAYT,eAAe8Z,EAAQt3B,EAAE,IAErEu3B,aAAaC,EAAWC,EAAMv3B,EAAQw3B,EAAMC,EAAQC,EAAKC,EAAiBC,GAAc,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACvFb,EAAkB,IAAIpc,QAAiBoc,EAAgBpW,GAAGoW,EAAgBvD,GAAGuD,EAAgBtD,EAAEsD,EAAgBrD,GAE/GgD,EAAYA,EAAUna,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UACtFgc,EAAOA,EAAKpa,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAC5E,MAAMmd,EAAoBntB,KAAKsqB,aAAa2B,GAAM9Z,iBAAiB,IAAInC,SACjEod,EAAmBptB,KAAKsqB,aAAa4B,GAAQ/Z,iBAAiB,IAAInC,SAClEqd,EAAmBrtB,KAAKsqB,aAAa6B,GAAKha,iBAAiB,IAAInC,SAC/Dsd,EAAgBvB,EAAUt3B,SAC1B84B,EAAmBJ,EAAkB9a,WAAW+a,GAAoBA,EAAiB/a,WAAWgb,GAChGG,EAAcF,EAAgB74B,EAC9Bg5B,EAAM1B,EAAUna,QAAQY,YAC9B,IAAIkb,EAAeP,EAAkBvb,QAAQI,IAAIyb,EAAI7b,QAAQG,eAAewb,EAAmBC,IAG/F,GAAIrB,GAAOrL,EAAeoI,SAAS/G,UAAYgK,GAAOrL,EAAeoI,SAAS3G,UAC9E,CACC,MAAMoL,EAAa3B,EAAKv3B,SACxB,IAAIm5B,EAAqB5tB,KAAKsqB,aAAaxJ,EAAe+M,UAAU5B,IAAO9Z,iBAAiB,IAAInC,SAChG,MAAM8d,EAA0B9tB,KAAKsqB,aAAaxJ,EAAe+M,UAAU5B,IAAO9Z,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAKsqB,aAAaxJ,EAAe+M,UAAU3B,IAAS/Z,iBAAiB,IAAInC,UACpMhQ,KAAKsqB,aAAaxJ,EAAe+M,UAAU3B,IAAS/Z,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAKsqB,aAAaxJ,EAAe+M,UAAU1B,IAAMha,iBAAiB,IAAInC,UACnL,IAAI+d,EAAsB,IAAI/d,QAC1Bge,EAA0B,IAAIhe,QAClC,GAAImc,GAAOrL,EAAeoI,SAAS/G,SACnC,CAEC,MAAM8L,EAAejuB,KAAKie,MAAMU,gBAAgB/M,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAAqBvb,SAAWuL,KAAKie,MAAMY,UAC3JkP,EAAsBH,EAAmBhc,QAAQI,IAAIhS,KAAKie,MAAMU,gBAAgB/M,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAAqBwC,YAAYT,eAAe+b,EAA0BG,IAC1ND,EAA0BhuB,KAAKie,MAAMU,gBAAgB/M,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,eAEjH,GAAImc,GAAOrL,EAAeoI,SAAS3G,UACxC,CAEC,MAAM2L,EAAeluB,KAAKie,MAAMO,gBAAgB5M,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAAqBvb,SAAWuL,KAAKie,MAAMS,UAC3JqP,EAAsBH,EAAmBhc,QAAQI,IAAIhS,KAAKie,MAAMO,gBAAgB5M,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAAqBwC,YAAYT,eAAgB+b,EAA0BI,IAC3NF,EAA0BhuB,KAAKie,MAAMO,gBAAgB5M,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAGtH,MAAMme,EAAgBZ,EAAmBO,EAAyB9tB,KAAKsqB,aAAaxJ,EAAe+M,UAAU5B,IAAO9Z,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAKsqB,aAAa2B,GAAM9Z,iBAAiB,IAAInC,UAC5Moe,EAA+BD,EAAgBR,EAC/CU,EAA+BX,EAAarb,WAAW0b,GACvDO,EAAaF,EAA+BC,EAClDX,EAAeA,EAAa9b,QAAQI,IAAKgc,EAAwBpc,QAAQW,IAAIwZ,GAAWvZ,YAAYT,eAA6B,GAAbuc,IAKrH,MAAMC,EAAcvC,EAAKpa,QAAQY,YAC3Bgc,EAAYrB,EAAkB9a,WAAW+a,GACzCqB,EAAcrB,EAAiB/a,WAAWgb,GAK1C/3B,EAAS0K,KAAK0uB,YAAYvB,EAAmBO,EAAcP,EAAkBvb,QAAQI,IAAI0b,GAAc3b,eAAe,IAAKC,IAAIuc,EAAY3c,SAAU4c,EAAWC,GACtK,IAAIE,EAAWr5B,EAAOs5B,MAClBC,EAAav5B,EAAOw5B,MA+BxB,MAAMlE,EAAuB,IAAI5a,QACjC,IAAI+e,EAAuBnE,EAAqBhZ,QAAQmZ,SAChC,QADwCuB,EAC/DtsB,KAAKsqB,aAAa2B,UAAK,IAAAK,GAAQ,QAARC,EAAvBD,EAAyB3B,cAAM,IAAA4B,OAAR,EAAvBA,EAAiC1B,mBAAmB,IAAI7a,UAErDgf,EAAIL,EAAS/c,QAAQmZ,SAASqB,EAAgBxa,SAASmZ,SAAS/qB,KAAKuqB,gBAAgB0B,IACrFgD,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAW1D,GAVuB,QAAvBxC,EAAAxsB,KAAKsqB,aAAa2B,UAAK,IAAAO,GAAvBA,EAAyB1a,SAAS4Z,kBAAkBuD,GAEpDF,EAAuBnE,EAAqBhZ,QAAQmZ,SAC1B,QADkC0B,EAC3DzsB,KAAKsqB,aAAa4B,UAAO,IAAAO,GAAQ,QAARC,EAAzBD,EAA2B9B,cAAM,IAAA+B,OAAR,EAAzBA,EAAmC7B,mBAAmB,IAAI7a,UAE3Dgf,EAAIH,EAAWjd,QAAQmZ,SAASqB,EAAgBxa,SAASmZ,SAAS/qB,KAAKuqB,gBAAgB2B,IACvF+C,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAC7B,QAAzBrC,EAAA3sB,KAAKsqB,aAAa4B,UAAO,IAAAS,GAAzBA,EAA2B7a,SAAS4Z,kBAAkBuD,GAGlDhD,GAAQnL,EAAeoI,SAASjH,cAAgBgK,GAAQnL,EAAeoI,SAAS7G,cACpF,CACC,IAAItH,EAAO,EACPkR,GAAQnL,EAAeoI,SAASjH,eACnClH,IAAS,GACV,IAAImU,EAAQlvB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,SAAoB+a,SAASsB,GAG7E8C,EAAQ,IAAInf,QAAc,EAAE,EAAE,GAAGkd,gBAAgBgC,EAAMtd,SAC3Dud,EAAQA,EAAMvd,QAAQwd,MAAM,IAAIpf,QAAc,EAAE,GAAG,GAAGkd,gBAAgB2B,EAAWjd,UAAUY,YAE3Fqc,EAAcA,EAAWjd,QAAQyd,MAAMrvB,KAAKsvB,aAAa,IAAItf,QAAc,EAAE,GAAG,GAAGkd,gBAAgB2B,EAAWjd,SAAUud,EAAMvd,QAAQG,eAAegJ,IAAQ,IAgB9JgU,EAAuBnE,EAAqBhZ,QAAQmZ,SAC1B,QADkC6B,EAC3D5sB,KAAKsqB,aAAa4B,UAAO,IAAAU,GAAQ,QAARC,EAAzBD,EAA2BjC,cAAM,IAAAkC,OAAR,EAAzBA,EAAmChC,mBAAmB,IAAI7a,UAE3Dgf,EAAIH,EAAWjd,QAAQmZ,SAASqB,EAAgBxa,SAASmZ,SAAS/qB,KAAKuqB,gBAAgB2B,IACvF+C,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAC7B,QAAzBlC,EAAA9sB,KAAKsqB,aAAa4B,UAAO,IAAAY,GAAzBA,EAA2Bhb,SAAS4Z,kBAAkBuD,GAEtDF,EAAuB/uB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,SAAoB8a,SAASlZ,QAAQmZ,SAC7E,QADqFgC,EAC3G/sB,KAAKsqB,aAAa6B,UAAI,IAAAY,GAAQ,QAARC,EAAtBD,EAAwBpC,cAAM,IAAAqC,OAAR,EAAtBA,EAAgCnC,mBAAmB,IAAI7a,UAExDgf,EAAI3C,EAAaza,QAAQmZ,SAAS/qB,KAAKuqB,gBAAgB4B,IACvD8C,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAChC,QAAtB/B,EAAAjtB,KAAKsqB,aAAa6B,UAAI,IAAAc,GAAtBA,EAAwBnb,SAAS4Z,kBAAkBuD,GAKpDM,mBAAmBxD,EAAWC,EAAMv3B,EAAQw3B,EAAMC,EAAQC,EAAKC,GAE9DL,EAAYA,EAAUna,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UACtFgc,EAAOA,EAAKpa,QAAQsb,gBAAgBltB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,UAE5E,IAAIwf,EAAa,CAACvD,EAAMC,EAAQC,GAEhC,GADAqD,EAAaA,EAAW7jB,OAAO6J,QAAoCnc,IAA5B2G,KAAKsqB,aAAa9U,IACnC,GAAnBga,EAAW/6B,OAAW,OACzB,GAAsB,GAAnB+6B,EAAW/6B,OACd,KAAAg7B,EAAAC,EAAAC,EACC,IAAIC,EAAM,IAAI5f,QACd4f,EAAIle,uBAAsB,IAAI1B,QAAgBc,OAAOib,EAAUna,QAAQY,YAAa,IAAIxC,QAAiBgc,IACzG,MAAM6D,EAAOD,EAAIhe,QAAQmZ,SAASqB,GAAiBrB,SAAS/qB,KAAKuqB,gBAAgBiF,EAAW,KAC5F,IAAI5E,EAAuB,IAAI5a,QAC3B+e,EAAuBnE,EAAqBhZ,QAAQmZ,SACvB,QAD+B0E,EAC/DzvB,KAAKsqB,aAAakF,EAAW,WAAG,IAAAC,GAAQ,QAARC,EAAhCD,EAAkC9E,cAAM,IAAA+E,OAAR,EAAhCA,EAA0C7E,mBAAmB,IAAI7a,UAE9Dif,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAAS8E,GAE1D,YADgC,QAAhCF,EAAA3vB,KAAKsqB,aAAakF,EAAW,WAAG,IAAAG,GAAhCA,EAAkC7d,SAAS4Z,kBAAkBuD,IAG9D,IAAI1B,EAAmB,EACnBuC,EAAW,GACXC,EAAa,EACd7D,GAAUpL,EAAeoI,SAAStH,OAASsK,GAAUpL,EAAeoI,SAASpH,OAC/EiO,EAAa,GACd,IAAI,IAAIx7B,EAAE,EAAGA,EAAIi7B,EAAW/6B,OAAOs7B,EAAYx7B,IAG3CA,GAAGi7B,EAAW/6B,OAChB84B,GAAkBvtB,KAAKsqB,aAAakF,EAAWj7B,EAAE,IAAI4d,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAKsqB,aAAakF,EAAWj7B,EAAE,IAAI4d,iBAAiB,IAAInC,UAE9Jud,GAAkBvtB,KAAKsqB,aAAakF,EAAWj7B,EAAE,IAAI4d,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAKsqB,aAAakF,EAAWj7B,IAAI4d,iBAAiB,IAAInC,UAC7J8f,EAAS/6B,KAAKw4B,GAGf,MAAMJ,EAAoBntB,KAAKsqB,aAAakF,EAAW,IAAIrd,iBAAiB,IAAInC,SAK1Esd,EAAgBvB,EAAUt3B,SAK1B+4B,EAAcF,EAAgB74B,EAC9Bg5B,EAAM1B,EAAUna,QAAQY,YACxBkb,EAAeP,EAAkBvb,QAAQI,IAAIyb,EAAI7b,QAAQG,eAAewb,EAAmBC,IAO3F33B,EAAI,IAAOqZ,KAAK8gB,KAAK9gB,KAAK+gB,IAAI1C,EAAmBA,EAAmBG,EAAawC,kBAAkB/C,KAQzG,IAAI,IAAI54B,EAAE,EAAGA,EAAIu7B,EAASr7B,OAAQF,IAClC,CACC,IAAI47B,EAAc,IAAIngB,QAAc,EAAG,GAAI,GAa3C,GAXGic,GAAQnL,EAAeoI,SAASvH,MAElCwO,EAAYjD,gBAAgBltB,KAAKie,MAAME,UAKvCgS,EAAcnE,EAAKpa,QAGpBke,EAASv7B,GAAKyL,KAAKowB,eAAejD,EAAmBO,EAAc73B,EAAGi6B,EAASv7B,GAAKg5B,EAAkB4C,GAChG,GAAH57B,EACH,KAAA87B,EAAAC,EAAAC,EACC,MAAMpS,EAAW,IAAInO,QACrBmO,EAASzM,uBAAsB,IAAI1B,QAAgBc,OAAOgf,EAASv7B,GAAI44B,EAAmBnB,IAG1F,MAAM6D,EAAO1R,EAASvM,QAAQmZ,SAASqB,GAAiBrB,SAAS/qB,KAAKuqB,gBAAgBiF,EAAWj7B,KACjG,IAAIq2B,EAAuB,IAAI5a,QAC3B+e,EAAuBnE,EAAqBhZ,QAAQmZ,SACvB,QAD+BsF,EAC/DrwB,KAAKsqB,aAAakF,EAAWj7B,WAAG,IAAA87B,GAAQ,QAARC,EAAhCD,EAAkC1F,cAAM,IAAA2F,OAAR,EAAhCA,EAA0CzF,mBAAmB,IAAI7a,UAE9Dif,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAAS8E,GAC1B,QAAhCU,EAAAvwB,KAAKsqB,aAAakF,EAAWj7B,WAAG,IAAAg8B,GAAhCA,EAAkCze,SAAS4Z,kBAAkBuD,OAG9D,KAAAuB,EAAAC,EAAAC,EACC,MAAMvS,EAAW,IAAInO,QACrBmO,EAASzM,uBAAsB,IAAI1B,QAAgBc,OAAOgf,EAASv7B,GAAIu7B,EAASv7B,EAAE,GAAIy3B,IAGtF,MAAM6D,EAAO1R,EAASvM,QAAQmZ,SAASqB,GAAiBrB,SAAS/qB,KAAKuqB,gBAAgBiF,EAAWj7B,KACjG,IAAIq2B,EAAuB,IAAI5a,QAC3B+e,EAAuBnE,EAAqBhZ,QAAQmZ,SACvB,QAD+ByF,EAC/DxwB,KAAKsqB,aAAakF,EAAWj7B,WAAG,IAAAi8B,GAAQ,QAARC,EAAhCD,EAAkC7F,cAAM,IAAA8F,OAAR,EAAhCA,EAA0C5F,mBAAmB,IAAI7a,UAE9Dif,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAAS8E,GAC1B,QAAhCa,EAAA1wB,KAAKsqB,aAAakF,EAAWj7B,WAAG,IAAAm8B,GAAhCA,EAAkC5e,SAAS4Z,kBAAkBuD,KA2ChE0B,mBAAmB5E,EAAWC,EAAMv3B,EAAQw3B,EAAMC,EAAQC,EAAKC,EAAiBC,GAAc,IAAAuE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC7FnF,EAAkB,IAAIpc,QAAiBoc,EAAgBpW,GAAGoW,EAAgBvD,GAAGuD,EAAgBtD,EAAEsD,EAAgBrD,GAE/GgD,EAAYA,EAAUna,QACtBoa,EAAOA,EAAKpa,QACZ,MAAMub,EAAoBntB,KAAK8pB,aAAamC,GAAM9Z,iBAAiB,IAAInC,SACjEod,EAAmBptB,KAAK8pB,aAAaoC,GAAQ/Z,iBAAiB,IAAInC,SAClEqd,EAAmBrtB,KAAK8pB,aAAaqC,GAAKha,iBAAiB,IAAInC,SAC/Dsd,EAAgBvB,EAAUt3B,SAC1B84B,EAAmBJ,EAAkB9a,WAAW+a,GAAoBA,EAAiB/a,WAAWgb,GAChGG,EAAcF,EAAgB74B,EAC9Bg5B,EAAM1B,EAAUna,QAAQY,YAC9B,IAAIkb,EAAeP,EAAkBvb,QAAQI,IAAIyb,EAAI7b,QAAQG,eAAewb,EAAmBC,IAC/F,MAAMe,EAAcvC,EAAKpa,QAAQY,YAC3Bgc,EAAYrB,EAAkB9a,WAAW+a,GACzCqB,EAAcrB,EAAiB/a,WAAWgb,GAGhDrtB,KAAKiqB,OAAOl1B,KAAKo4B,GACjBntB,KAAKiqB,OAAOl1B,KAAK24B,GACjB,MAAMp4B,EAAS0K,KAAK0uB,YAAYvB,EAAmBO,EAAcP,EAAkBvb,QAAQI,IAAI0b,GAAc3b,eAAe,IAAKC,IAAIuc,EAAY3c,SAAU4c,EAAWC,GACtK,IAAIE,EAAWr5B,EAAOs5B,MAClBC,EAAav5B,EAAOw5B,MAGxB9uB,KAAKkqB,aAAan1B,KAAKo4B,GACvBntB,KAAKkqB,aAAan1B,KAAKo4B,EAAkBvb,QAAQI,IAAI,IAAIhC,QAAe,EAAG,EAAGwe,GAAYtB,gBAAgByB,EAAS/c,WACnH5R,KAAKkqB,aAAan1B,KAAKo4B,EAAkBvb,QAAQI,IAAI,IAAIhC,QAAe,EAAG,EAAGwe,GAAYtB,gBAAgByB,EAAS/c,WACnH5R,KAAKkqB,aAAan1B,KAAK24B,GACvB1tB,KAAKmqB,YAAYp1B,KAAKo4B,EAAkBvb,QAAQI,IAAI0b,GAAc3b,eAAe,KACjF/R,KAAKmqB,YAAYp1B,KAAKo4B,EAAkBvb,QAAQI,IAAI0b,GAAc3b,eAAe,IAAKC,IAAIuc,EAAY3c,QAAQG,eAAgC,GAAjBwb,KAC7H,MAAM3C,EAAuB,IAAI5a,QACjC,IAAI+e,EAAuBnE,EAAqBhZ,QAAQmZ,SAChC,QADwC6F,EAC/D5wB,KAAK8pB,aAAamC,UAAK,IAAA2E,GAAQ,QAARC,EAAvBD,EAAyBjG,cAAM,IAAAkG,OAAR,EAAvBA,EAAiChG,mBAAmB,IAAI7a,UAErDgf,EAAIL,EAAS/c,QAAQmZ,SAASqB,EAAgBxa,SAASmZ,SAAS/qB,KAAKgqB,uBAAuBiC,IAC5FgD,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAW1D,GAVuB,QAAvB8B,EAAA9wB,KAAK8pB,aAAamC,UAAK,IAAA6E,GAAvBA,EAAyBhf,SAAS4Z,kBAAkBuD,GAEpDF,EAAuBnE,EAAqBhZ,QAAQmZ,SAC1B,QADkCgG,EAC3D/wB,KAAK8pB,aAAaoC,UAAO,IAAA6E,GAAQ,QAARC,EAAzBD,EAA2BpG,cAAM,IAAAqG,OAAR,EAAzBA,EAAmCnG,mBAAmB,IAAI7a,UAE3Dgf,EAAIH,EAAWjd,QAAQmZ,SAASqB,EAAgBxa,SAASmZ,SAAS/qB,KAAKgqB,uBAAuBkC,IAC9F+C,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAC7B,QAAzBiC,EAAAjxB,KAAK8pB,aAAaoC,UAAO,IAAA+E,GAAzBA,EAA2Bnf,SAAS4Z,kBAAkBuD,GAGlDhD,GAAQnL,EAAeoI,SAASjH,cAAgBgK,GAAQnL,EAAeoI,SAAS7G,cACpF,CACC,IAAItH,EAAO,EACPkR,GAAQnL,EAAeoI,SAASjH,eACnClH,IAAS,GACV,IAAImU,EAAQ7C,EAGR8C,EAAQ,IAAInf,QAAc,EAAE,EAAE,GAAGkd,gBAAgBgC,EAAMtd,SAC3Dud,EAAQA,EAAMvd,QAAQwd,MAAM,IAAIpf,QAAc,EAAE,GAAG,GAAGkd,gBAAgB2B,EAAWjd,UAAUY,YAE3Fqc,EAAcA,EAAWjd,QAAQyd,MAAMrvB,KAAKsvB,aAAa,IAAItf,QAAc,EAAE,GAAG,GAAGkd,gBAAgB2B,EAAWjd,SAAUud,EAAMvd,QAAQG,eAAegJ,IAAQ,IAI9JgU,EAAuBnE,EAAqBhZ,QAAQmZ,SAC1B,QADkCmG,EAC3DlxB,KAAK8pB,aAAaoC,UAAO,IAAAgF,GAAQ,QAARC,EAAzBD,EAA2BvG,cAAM,IAAAwG,OAAR,EAAzBA,EAAmCtG,mBAAmB,IAAI7a,UAE3Dgf,EAAIH,EAAWjd,QAAQmZ,SAASqB,EAAgBxa,SAASmZ,SAAS/qB,KAAKgqB,uBAAuBkC,IAC9F+C,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAC7B,QAAzBoC,EAAApxB,KAAK8pB,aAAaoC,UAAO,IAAAkF,GAAzBA,EAA2Btf,SAAS4Z,kBAAkBuD,GAEtDF,EAA6C,QAAvBsC,EAACrxB,KAAK8pB,aAAaqC,UAAI,IAAAkF,GAAQ,QAARC,EAAtBD,EAAwB1G,cAAM,IAAA2G,OAAR,EAAtBA,EAAgCzG,mBAAmB,IAAI7a,SAAoB4B,QAClGod,EAAI3C,EAAaza,QAAQmZ,SAAS/qB,KAAKgqB,uBAAuBmC,IAC9D8C,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GAChC,QAAtBuC,EAAAvxB,KAAK8pB,aAAaqC,UAAI,IAAAoF,GAAtBA,EAAwBzf,SAAS4Z,kBAAkBuD,GAEpDuC,yBAAyBzF,EAAWC,EAAMv3B,EAAQw3B,EAAMC,EAAQC,EAAKC,GAEpEL,EAAYA,EAAUna,QACtBoa,EAAOA,EAAKpa,QAEZ,IAAI4d,EAAa,CAACvD,EAAMC,EAAQC,GAEhC,GADAqD,EAAaA,EAAW7jB,OAAO6J,QAAoCnc,IAA5B2G,KAAK8pB,aAAatU,IACnC,GAAnBga,EAAW/6B,OAAW,OACzB,GAAsB,GAAnB+6B,EAAW/6B,OACd,KAAAg9B,EAAAC,EAAAC,EACC,IAAI/B,EAAM,IAAI5f,QACd4f,EAAIle,uBAAsB,IAAI1B,QAAgBc,OAAOib,EAAUna,QAAQY,YAAa,IAAIxC,QAAiBgc,IACzG,MAAM6D,EAAOD,EAAIhe,QAAQmZ,SAASqB,GAAiBrB,SAAS/qB,KAAKgqB,uBAAuBwF,EAAW,KACnG,IAAI5E,EAAuB,IAAI5a,QAC3B+e,EAAuBnE,EAAqBhZ,QAAQmZ,SACvB,QAD+B0G,EAC/DzxB,KAAK8pB,aAAa0F,EAAW,WAAG,IAAAiC,GAAQ,QAARC,EAAhCD,EAAkC9G,cAAM,IAAA+G,OAAR,EAAhCA,EAA0C7G,mBAAmB,IAAI7a,UAE9Dif,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAAS8E,GAE1D,YADgC,QAAhC8B,EAAA3xB,KAAK8pB,aAAa0F,EAAW,WAAG,IAAAmC,GAAhCA,EAAkC7f,SAAS4Z,kBAAkBuD,IAG9D,IAAI1B,EAAmB,EACnBuC,EAAW,GACXC,EAAa,EACd7D,GAAUpL,EAAeoI,SAAStH,OAASsK,GAAUpL,EAAeoI,SAASpH,OAC/EiO,EAAa,GACd,IAAI,IAAIx7B,EAAE,EAAGA,EAAIi7B,EAAW/6B,OAAOs7B,EAAYx7B,IAG3CA,GAAGi7B,EAAW/6B,OAChB84B,GAAkBvtB,KAAK8pB,aAAa0F,EAAWj7B,EAAE,IAAI4d,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAK8pB,aAAa0F,EAAWj7B,EAAE,IAAI4d,iBAAiB,IAAInC,UAE9Jud,GAAkBvtB,KAAK8pB,aAAa0F,EAAWj7B,EAAE,IAAI4d,iBAAiB,IAAInC,SAAiBqC,WAAWrS,KAAK8pB,aAAa0F,EAAWj7B,IAAI4d,iBAAiB,IAAInC,UAC7J8f,EAAS/6B,KAAKw4B,GAGf,IAAIJ,EAAoBntB,KAAK8pB,aAAa0F,EAAW,IAAIrd,iBAAiB,IAAInC,SAM9E,MAAMsd,EAAgBvB,EAAUt3B,SAK1B+4B,EAAcF,EAAgB74B,EAC9Bg5B,EAAM1B,EAAUna,QAAQY,YACxBkb,EAAeP,EAAkBvb,QAAQI,IAAIyb,EAAI7b,QAAQG,eAAewb,EAAmBC,IAI3F33B,EAAI,IAAOqZ,KAAK8gB,KAAK9gB,KAAK+gB,IAAI1C,EAAmBA,EAAmBG,EAAawC,kBAAkB/C,KACtGqC,EAAW,IAAM1O,EAAeoI,SAAS1E,OAE3CxkB,KAAKiqB,OAAOl1B,KAAKo4B,GACjBntB,KAAKiqB,OAAOl1B,KAAK24B,GACjB1tB,KAAKmqB,YAAYp1B,KAAKo4B,EAAkBvb,QAAQI,IAAI0b,GAAc3b,eAAe,KACjF/R,KAAKmqB,YAAYp1B,KAAKo4B,EAAkBvb,QAAQI,IAAI0b,GAAc3b,eAAe,IAAKC,IAAIga,EAAKpa,QAAQY,YAAYT,eAAe,GAAIwb,MAOvI,IAAI,IAAIh5B,EAAE,EAAGA,EAAIu7B,EAASr7B,OAAQF,IAGjC,GADAu7B,EAASv7B,GAAKyL,KAAKowB,eAAejD,EAAmBO,EAAc73B,EAAGi6B,EAASv7B,GAAKg5B,EAAkBvB,GAChG,GAAHz3B,EACH,KAAAq9B,EAAAC,EAAAC,EACC,MAAM3T,EAAW,IAAInO,QACrBmO,EAASzM,uBAAsB,IAAI1B,QAAgBc,OAAOgf,EAASv7B,GAAI44B,EAAmBnB,IACvFwD,EAAW,IAAM1O,EAAeoI,SAAS1E,OAC3CxkB,KAAKkqB,aAAan1B,KAAMo4B,GACxBntB,KAAKkqB,aAAan1B,KAAM+6B,EAASv7B,KAElC,MAAMs7B,EAAO1R,EAASvM,QAAQmZ,SAASqB,GAAiBrB,SAAS/qB,KAAKgqB,uBAAuBwF,EAAWj7B,KACxG,IAAIq2B,EAAuB,IAAI5a,QAC3B+e,EAAuBnE,EAAqBhZ,QAAQmZ,SACvB,QAD+B6G,EAC/D5xB,KAAK8pB,aAAa0F,EAAWj7B,WAAG,IAAAq9B,GAAQ,QAARC,EAAhCD,EAAkCjH,cAAM,IAAAkH,OAAR,EAAhCA,EAA0ChH,mBAAmB,IAAI7a,UAE9Dif,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAAS8E,GAC1B,QAAhCiC,EAAA9xB,KAAK8pB,aAAa0F,EAAWj7B,WAAG,IAAAu9B,GAAhCA,EAAkChgB,SAAS4Z,kBAAkBuD,OAG9D,KAAA8C,EAAAC,EAAAC,EACC,MAAM9T,EAAW,IAAInO,QACrBmO,EAASzM,uBAAsB,IAAI1B,QAAgBc,OAAOgf,EAASv7B,GAAIu7B,EAASv7B,EAAE,GAAIy3B,IACnFwD,EAAW,IAAM1O,EAAeoI,SAAS1E,OAC3CxkB,KAAKkqB,aAAan1B,KAAM+6B,EAASv7B,EAAE,IACnCyL,KAAKkqB,aAAan1B,KAAM+6B,EAASv7B,KAElC,MAAMs7B,EAAO1R,EAASvM,QAAQmZ,SAASqB,GAAiBrB,SAAS/qB,KAAKgqB,uBAAuBwF,EAAWj7B,KACxG,IAAIq2B,EAAuB,IAAI5a,QAC3B+e,EAAuBnE,EAAqBhZ,QAAQmZ,SACvB,QAD+BgH,EAC/D/xB,KAAK8pB,aAAa0F,EAAWj7B,WAAG,IAAAw9B,GAAQ,QAARC,EAAhCD,EAAkCpH,cAAM,IAAAqH,OAAR,EAAhCA,EAA0CnH,mBAAmB,IAAI7a,UAE9Dif,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAAS8E,GAC1B,QAAhCoC,EAAAjyB,KAAK8pB,aAAa0F,EAAWj7B,WAAG,IAAA09B,GAAhCA,EAAkCngB,SAAS4Z,kBAAkBuD,IAMhEP,YAAYzC,EAAMiG,EAAUlG,EAAMmG,EAAYC,GAG7C,IAAInY,EAAI,EACE5I,EAAI8gB,EACJz4B,EAAIuyB,EAAK5Z,WAAW6f,GACpBG,GAAU,EACV34B,EAAIwV,KAAK+gB,IAAIkC,EAAaC,KAE1BnY,EAAI,EACJoY,GAAY,GAGP,GAAL34B,GAAUy4B,GAAcC,IAExBnY,EAAI,EACJoY,GAAY,GAEbA,IAEChhB,GAAK8gB,EAAaA,EAAaC,EAAeA,EAAe14B,EAAIA,IAAM,EAAIA,GAC3EugB,EAAI/K,KAAK8gB,KAAK9gB,KAAKvC,IAAI,EAAKwlB,EAAaA,EAAa9gB,EAAIA,KAG9D,IAAIihB,EAAQJ,EAAStgB,QAAQW,IAAI0Z,GACjCqG,EAAM9f,YACN,IAAImL,EAAMsO,EAAKra,QAAQI,IAAIsgB,EAAM1gB,QAAQG,eAAeV,IACpDqX,EAAQ1oB,KAAKuyB,oBAAoBD,EAAM1gB,QAAS+L,EAAI/L,QAASoa,EAAKpa,SACtE8W,EAAQ/K,EAAI3L,IAAI0W,EAAM9W,QAAQW,IAAIoL,GAAKnL,YAAYT,eAAekI,IAClE,IAAIuY,EAAM,IAAIxiB,OACVyd,EAAM/E,EAAM9W,QAAQW,IAAI0Z,GAAMzZ,YACpCigB,EAAOzG,EAAKpa,QAAQW,IAAI0Z,GAAMzZ,YAC9BkgB,EAAMJ,EAAM1gB,QAAQwd,MAAMqD,GAAMjgB,YAC1BmgB,EAAKD,EAAK9gB,QAAQwd,MAAM3B,GAE5B+E,EAAI1hB,OAAO4X,EAAOuD,EAAM0G,GACxB,IAAIC,EAAO,IAAI5iB,OACfyd,EAAM/E,EAAM9W,QAAQW,IAAI2f,GAAU1f,YAExCkgB,EAAQJ,EAAM1gB,QAAQwd,MAAMqD,GAAOjgB,YACnCkgB,EAAKG,aAAaP,EAAOG,GACnBE,EAAKlF,EAAI7b,QAAQwd,MAAMsD,GACvBE,EAAK9hB,OAAOohB,EAAUxJ,EAAOiK,GAC7B,MAAM/D,GAAQ,IAAI5e,SAAmB0B,sBAAsB8gB,GACrD1D,GAAQ,IAAI9e,SAAmB0B,sBAAsBkhB,GACjE,MAAO,CAAEhE,QAAOE,SAGjBQ,aAAavD,EAAW4G,GAEvB,IAAIH,EAAM,IAAIxiB,OACV8iB,EAAM,IAAI9iB,QACJpY,EAASm0B,EACbyG,EAAI1hB,OAAOgiB,EAAIl7B,EAAQ+6B,GAC7B,IAAI7gB,EAAW,IAAI9B,QAEnB,OADA8B,EAASJ,sBAAsB8gB,GACxB1gB,EAGRse,eAAetT,EAAOqP,EAAK7sB,EAAQlF,EAAG24B,GACrC,MAAMC,EAAiB,EAAJ54B,EAAQ,EACrB64B,EAAkB9G,EAAIva,QAAQW,IAAIuK,GAGlC6V,EAAKI,EAAanhB,QAClBtc,EAASwnB,EAAMlL,QAAQI,IAAIihB,EAAgBrhB,QAAQG,eAAe3X,IAExE,OADA9E,EAAO0c,IAAI2gB,EAAG/gB,QAAQG,iBAAiBihB,EAAaA,EAAa,GAAK1zB,IAC/DhK,EAGRi9B,oBAAoBW,EAAaC,EAAYC,GAC5C,IAAIC,EAAW,EACTA,EAAWH,EAAYthB,QAAQ0hB,IAAIF,EAAMxhB,QAAQW,IAAI4gB,GAAY3gB,aAEjE6gB,IAAa,EAEbH,EAAY1gB,YACZ,IAAI+gB,EAAoBL,EAAYnhB,eAAeshB,GAEnD,OAAOD,EAAMphB,IAAIuhB,GAGxBjjB,SACC,QAAyBjX,IAAtB2G,KAAKsqB,mBAAmDjxB,IAArB2G,KAAKqqB,YAC1C,OAKD,GAHArqB,KAAKiqB,OAAS,GACdjqB,KAAKkqB,aAAe,GACpBlqB,KAAKmqB,YAAc,GAChBnqB,KAAKie,MAAM3e,OAAO,EACrB,KAAAk0B,EAAAC,EAAAC,EACC,IAAIC,EAAgB3zB,KAAKwqB,kBACrBoJ,EAAgB5zB,KAAKie,MAAM3e,OAC3Bu0B,EAAYF,EAAgBC,EAC5BE,GAAoB,IAAI9jB,SAAgB+jB,mBAAmB/zB,KAAKqqB,YAAY2J,aAC5EC,EAA0Bj0B,KAAKsqB,aAAa,GAAGK,OAAOqJ,YAAYpiB,QAAQkZ,SAC1EoJ,EAAWl0B,KAAKie,MAAMC,SAAStM,QACjCG,eAAe8hB,GACfM,OAAOL,GACPM,aAAap0B,KAAKqqB,YAAY2J,aAC9BI,aAAaH,GAGfj0B,KAAK8pB,aAAahJ,EAAeoI,SAAS9H,MAAMxQ,SAASK,KAAKjR,KAAKie,MAAMC,SAAStM,SAClF5R,KAAK8pB,aAAahJ,EAAeoI,SAAS9H,MAAMtP,SAAS4Z,kBAAkB1rB,KAAKie,MAAME,SAASvM,SAI/F,MAAMgZ,EAAuB5qB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,SAAoB8a,SACnFiE,EAAuBnE,EAAqBhZ,QAAQmZ,SACrC,QAD6CyI,EACjExzB,KAAKsqB,aAAa,UAAE,IAAAkJ,GAAQ,QAARC,EAApBD,EAAsB7I,cAAM,IAAA8I,OAAR,EAApBA,EAA8B5I,mBAAmB,IAAI7a,UAEhDgf,EAAIhvB,KAAKie,MAAME,SAASvM,QAAQmZ,SAAS/qB,KAAKuqB,gBAAgB,IAC9D0E,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GACxC,QAApB0E,EAAA1zB,KAAKsqB,aAAa,UAAE,IAAAoJ,GAApBA,EAAsB5hB,SAAS4Z,kBAAkBuD,GAEjDjvB,KAAKsqB,aAAaxJ,EAAeoI,SAAS9H,MAAMxQ,SAASK,KAAKijB,GAE9Dl0B,KAAK8rB,aAAa9rB,KAAKie,MAAMa,gBAAgB9e,KAAKie,MAAMc,WAAY/e,KAAKie,MAAMe,UAC9E8B,EAAeoI,SAAS1H,aAAaV,EAAeoI,SAASzH,aAAaX,EAAeoI,SAASxH,UAClG,IAAI1R,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAI,EAAE,IAAKt0B,KAAKie,MAAMK,YACrGte,KAAK2wB,mBAAmB3wB,KAAKie,MAAMa,gBAAgB9e,KAAKie,MAAMc,WAAY/e,KAAKie,MAAMe,UACpF8B,EAAeoI,SAAS1H,aAAaV,EAAeoI,SAASzH,aAAaX,EAAeoI,SAASxH,UAClG,IAAI1R,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAI,EAAE,IAAKt0B,KAAKie,MAAMK,YAErGte,KAAK8rB,aAAa9rB,KAAKie,MAAMgB,gBAAgBjf,KAAKie,MAAMiB,WAAYlf,KAAKie,MAAMkB,UAC7E2B,EAAeoI,SAAS7H,cAAcP,EAAeoI,SAAS5H,cAAcR,EAAeoI,SAAS3H,WACpG,IAAIvR,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAI,EAAE,IAAKt0B,KAAKie,MAAMM,YACtGve,KAAK2wB,mBAAmB3wB,KAAKie,MAAMgB,gBAAgBjf,KAAKie,MAAMiB,WAAYlf,KAAKie,MAAMkB,UACnF2B,EAAeoI,SAAS7H,cAAcP,EAAeoI,SAAS5H,cAAcR,EAAeoI,SAAS3H,WACpG,IAAIvR,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAI,EAAE,IAAKt0B,KAAKie,MAAMM,YAEtGve,KAAKuvB,mBAAmBvvB,KAAKie,MAAMmB,gBAAiBpf,KAAKie,MAAMoB,WAAYrf,KAAKie,MAAMqB,UACrFwB,EAAeoI,SAASvH,MAAOb,EAAeoI,SAAStH,MAAOd,EAAeoI,SAASrH,YACtF,IAAI7R,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAI,EAAE,KACpFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMmB,gBAAiBpf,KAAKie,MAAMoB,WAAYrf,KAAKie,MAAMqB,UAC3FwB,EAAeoI,SAASvH,MAAOb,EAAeoI,SAAStH,MAAOd,EAAeoI,SAASrH,YACtF,IAAI7R,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAI,EAAE,KAGpFt0B,KAAKuvB,mBAAmBvvB,KAAKie,MAAMsB,eAAgBvf,KAAKie,MAAMuB,UAAWxf,KAAKie,MAAMwB,SACnFqB,EAAeoI,SAAS1E,KAAM1D,EAAeoI,SAASpH,KAAMhB,EAAeoI,SAASnH,MACpF,IAAI/R,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAI,EAAE,KACpFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMsB,eAAgBvf,KAAKie,MAAMuB,UAAWxf,KAAKie,MAAMwB,SACzFqB,EAAeoI,SAAS1E,KAAM1D,EAAeoI,SAASpH,KAAMhB,EAAeoI,SAASnH,MACpF,IAAI/R,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAI,EAAE,KAIpFt0B,KAAK8rB,aAAa9rB,KAAKie,MAAMO,gBAAgBxe,KAAKie,MAAMQ,WAAYze,KAAKie,MAAMS,UAC5EoC,EAAeoI,SAASjH,aAAanB,EAAeoI,SAAShH,aAAapB,EAAeoI,SAAS/G,UAClG,IAAInS,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAItkB,OAAgBskB,SAAS,GAAGtkB,OAAgBskB,UAAU,MAAOt0B,KAAKie,MAAMG,YAC5Jpe,KAAK2wB,mBAAmB3wB,KAAKie,MAAMO,gBAAgBxe,KAAKie,MAAMQ,WAAYze,KAAKie,MAAMS,UAClFoC,EAAeoI,SAASjH,aAAanB,EAAeoI,SAAShH,aAAapB,EAAeoI,SAAS/G,UAClG,IAAInS,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAItkB,OAAgBskB,SAAS,GAAGtkB,OAAgBskB,UAAU,MAAOt0B,KAAKie,MAAMG,YAE5Jpe,KAAK8rB,aAAa9rB,KAAKie,MAAMU,gBAAgB3e,KAAKie,MAAMW,WAAY5e,KAAKie,MAAMY,UAC9EiC,EAAeoI,SAAS7G,cAAcvB,EAAeoI,SAAS5G,cAAcxB,EAAeoI,SAAS3G,WACpG,IAAIvS,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAItkB,OAAgBskB,SAAS,GAAGtkB,OAAgBskB,SAAS,MAAOt0B,KAAKie,MAAMI,YACzJre,KAAK2wB,mBAAmB3wB,KAAKie,MAAMU,gBAAgB3e,KAAKie,MAAMW,WAAY5e,KAAKie,MAAMY,UACpFiC,EAAeoI,SAAS7G,cAAcvB,EAAeoI,SAAS5G,cAAcxB,EAAeoI,SAAS3G,WACpG,IAAIvS,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,SAAS,IAAItkB,OAAgBskB,SAAS,GAAGtkB,OAAgBskB,SAAS,MAAOt0B,KAAKie,MAAMI,YAEzJ,IAAIkW,EAAmB,IAAIvkB,QAAc,EAAE,GAAG,GAAGkd,gBAAgBltB,KAAKie,MAAMG,YACxEoW,EAAkBx0B,KAAKie,MAAM6B,kBAAkBlO,QAAQY,YAAY4c,MAAMmF,GAAkB/hB,YAC/FxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAM6B,kBAAmB0U,EAAiBx0B,KAAKie,MAAM8B,YACjFe,EAAe2T,YAAYrN,WAAYtG,EAAe2T,YAAYpN,WAAYvG,EAAe2T,YAAYnN,YACzG,IAAItX,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KACrFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAM6B,kBAAmB0U,EAAiBx0B,KAAKie,MAAM8B,YACvFe,EAAe2T,YAAYrN,WAAYtG,EAAe2T,YAAYpN,WAAYvG,EAAe2T,YAAYnN,YACzG,IAAItX,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KAErF,IAAII,EAAmB10B,KAAKie,MAAMiC,mBAAmBtO,QAAQY,YAAY4c,MAAMmF,GAAkB/hB,YACjGxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAMiC,mBAAoBwU,EAAkB10B,KAAKie,MAAMkC,aACnFW,EAAe2T,YAAYjN,YAAa1G,EAAe2T,YAAYhN,YAAa3G,EAAe2T,YAAY/M,aAC3G,IAAI1X,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KACrFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMiC,mBAAoBwU,EAAkB10B,KAAKie,MAAMkC,aACzFW,EAAe2T,YAAYjN,YAAa1G,EAAe2T,YAAYhN,YAAa3G,EAAe2T,YAAY/M,aAC3G,IAAI1X,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KAGrF,IAAIK,EAAiB30B,KAAKie,MAAMqC,iBAAiB1O,QAAQY,YAAY4c,MAAMmF,GAAkB/hB,YAC7FxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAMqC,iBAAkBqU,EAAgB30B,KAAKie,MAAMsC,WAC/EO,EAAe2T,YAAY7M,UAAW9G,EAAe2T,YAAY5M,UAAW/G,EAAe2T,YAAY3M,WACvG,IAAI9X,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KACrFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMqC,iBAAkBqU,EAAgB30B,KAAKie,MAAMsC,WACrFO,EAAe2T,YAAY7M,UAAW9G,EAAe2T,YAAY5M,UAAW/G,EAAe2T,YAAY3M,WACvG,IAAI9X,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KAErF,IAAIM,EAAkB50B,KAAKie,MAAMyC,kBAAkB9O,QAAQY,YAAY4c,MAAMmF,GAAkB/hB,YAC/FxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAMyC,kBAAmBkU,EAAiB50B,KAAKie,MAAM0C,YACjFG,EAAe2T,YAAYzM,WAAYlH,EAAe2T,YAAYxM,WAAYnH,EAAe2T,YAAYvM,YACzG,IAAIlY,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KACrFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMyC,kBAAmBkU,EAAiB50B,KAAKie,MAAM0C,YACvFG,EAAe2T,YAAYzM,WAAYlH,EAAe2T,YAAYxM,WAAYnH,EAAe2T,YAAYvM,YACzG,IAAIlY,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,UAAU,IAAI,KAErFC,EAAmB,IAAIvkB,QAAc,EAAE,EAAE,GAAGkd,gBAAgBltB,KAAKie,MAAMG,YACvE,IAAIyW,EAAkB70B,KAAKie,MAAMyB,kBAAkB9N,QAAQY,YAAY4c,MAAMmF,GAAkB/hB,YAC/FxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAMyB,kBAAmBmV,EAAiB70B,KAAKie,MAAM0B,YACjFmB,EAAe2T,YAAYzN,WAAYlG,EAAe2T,YAAYxN,WAAYnG,EAAe2T,YAAYvN,YACzG,IAAIlX,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAItkB,OAAgBskB,UAAU,IAAI,KACjHt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMyB,kBAAmBmV,EAAiB70B,KAAKie,MAAM0B,YACvFmB,EAAe2T,YAAYzN,WAAYlG,EAAe2T,YAAYxN,WAAYnG,EAAe2T,YAAYvN,YACzG,IAAIlX,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAItkB,OAAgBskB,UAAU,IAAI,KAGjH,IAAIQ,EAAoB,IAAI9kB,QAAc,EAAE,EAAE,GAAGkd,gBAAgBltB,KAAKie,MAAMI,YACxE0W,EAAmB/0B,KAAKie,MAAM+B,kBAAkBpO,QAAQY,YAAY4c,MAAM0F,GAAmBtiB,YACjGxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAM+B,kBAAmB+U,EAAkB/0B,KAAKie,MAAMgC,YAClFa,EAAe2T,YAAYzO,YAAalF,EAAe2T,YAAYxO,YAAanF,EAAe2T,YAAYvO,aAC3G,IAAIlW,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KACpFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAM+B,kBAAmB+U,EAAkB/0B,KAAKie,MAAMgC,YACxFa,EAAe2T,YAAYzO,YAAalF,EAAe2T,YAAYxO,YAAanF,EAAe2T,YAAYvO,aAC3G,IAAIlW,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KAEpF,IAAIU,EAAoBh1B,KAAKie,MAAMmC,mBAAmBxO,QAAQY,YAAY4c,MAAM0F,GAAmBtiB,YACnGxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAMmC,mBAAoB4U,EAAmBh1B,KAAKie,MAAMoC,aACpFS,EAAe2T,YAAYrO,aAActF,EAAe2T,YAAYpO,aAAcvF,EAAe2T,YAAYnO,cAC7G,IAAItW,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KACpFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMmC,mBAAoB4U,EAAmBh1B,KAAKie,MAAMoC,aAC1FS,EAAe2T,YAAYrO,aAActF,EAAe2T,YAAYpO,aAAcvF,EAAe2T,YAAYnO,cAC7G,IAAItW,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KAEpF,IAAIW,EAAkBj1B,KAAKie,MAAMuC,iBAAiB5O,QAAQY,YAAY4c,MAAM0F,GAAmBtiB,YAC/FxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAMuC,iBAAkByU,EAAiBj1B,KAAKie,MAAMwC,WAChFK,EAAe2T,YAAYjO,WAAY1F,EAAe2T,YAAYhO,WAAY3F,EAAe2T,YAAY/N,YACzG,IAAI1W,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KACpFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAMuC,iBAAkByU,EAAiBj1B,KAAKie,MAAMwC,WACtFK,EAAe2T,YAAYjO,WAAY1F,EAAe2T,YAAYhO,WAAY3F,EAAe2T,YAAY/N,YACzG,IAAI1W,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KAEpF,IAAIY,EAAmBl1B,KAAKie,MAAM2C,kBAAkBhP,QAAQY,YAAY4c,MAAM0F,GAAmBtiB,YACjGxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAM2C,kBAAmBsU,EAAkBl1B,KAAKie,MAAM4C,YAClFC,EAAe2T,YAAY7N,YAAa9F,EAAe2T,YAAY5N,YAAa/F,EAAe2T,YAAY3N,aAC3G,IAAI9W,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KACpFt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAM2C,kBAAmBsU,EAAkBl1B,KAAKie,MAAM4C,YACxFC,EAAe2T,YAAY7N,YAAa9F,EAAe2T,YAAY5N,YAAa/F,EAAe2T,YAAY3N,aAC3G,IAAI9W,SAAmBqkB,aAAa,IAAIrkB,OAAY,EAAEA,OAAgBskB,SAAS,IAAI,KAEpFQ,EAAoB,IAAI9kB,QAAc,EAAE,EAAE,GAAGkd,gBAAgBltB,KAAKie,MAAMI,YACxE,IAAI8W,EAAmBn1B,KAAKie,MAAM2B,kBAAkBhO,QAAQY,YAAY4c,MAAM0F,GAAmBtiB,YAOjG,OANAxS,KAAKuvB,mBAAmBvvB,KAAKie,MAAM2B,kBAAmBuV,EAAkBn1B,KAAKie,MAAM4B,YAClFiB,EAAe2T,YAAY7O,YAAa9E,EAAe2T,YAAY5O,YAAa/E,EAAe2T,YAAY3O,aAC3G,IAAI9V,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAItkB,OAAgBskB,SAAS,IAAI,UAChHt0B,KAAKwxB,yBAAyBxxB,KAAKie,MAAM2B,kBAAmBuV,EAAkBn1B,KAAKie,MAAM4B,YACxFiB,EAAe2T,YAAY7O,YAAa9E,EAAe2T,YAAY5O,YAAa/E,EAAe2T,YAAY3O,aAC3G,IAAI9V,SAAmBqkB,aAAa,IAAIrkB,OAAYA,OAAgBskB,UAAU,IAAItkB,OAAgBskB,SAAS,IAAI,KAIjH,MAAMT,EAAY7zB,KAAKwqB,kBAAkBxqB,KAAKgrB,aAAahrB,KAAK8pB,cAC1DgK,GAAoB,IAAI9jB,SAAgB+jB,mBAAmB/zB,KAAKqqB,YAAY2J,aAC5EC,EAA0Bj0B,KAAKsqB,aAAa,GAAGK,OAAOqJ,YAAYpiB,QAAQkZ,SAC1EsK,EAAMp1B,KAAK8pB,aAAa,GAAGlZ,SAASgB,QACxCG,eAAe8hB,GACfM,OAAOL,GACPM,aAAap0B,KAAKqqB,YAAY2J,aAC9BI,aAAaH,GAEfj0B,KAAKsqB,aAAa,GAAG1Z,SAASK,KAAKmkB,GAInC,MAAMxK,EAAuB5qB,KAAKqqB,YAAYQ,mBAAmB,IAAI7a,SAAoB8a,SACzF,IAAI,IAAIv2B,EAAE,EAAGA,EAAEyL,KAAK8pB,aAAar1B,OAAQF,IAAI,KAAA8gC,EAAAC,EAAAC,EAC5C,IAAIv1B,KAAKsqB,aAAa/1B,KAAOyL,KAAKsqB,aAAa/1B,GAAGo2B,OACjD,SACD,MAAMoE,EAAuBnE,EAAqBhZ,QAAQmZ,SACrC,QAD6CsK,EACjEr1B,KAAKsqB,aAAa/1B,UAAE,IAAA8gC,GAAQ,QAARC,EAApBD,EAAsB1K,cAAM,IAAA2K,OAAR,EAApBA,EAA8BzK,mBAAmB,IAAI7a,UAGhDgf,EAAIhvB,KAAK8pB,aAAav1B,GAAGs2B,mBAAmB,IAAI7a,SAAoB+a,SAAS/qB,KAAKuqB,gBAAgBh2B,IAClG06B,EAAKF,EAAuBnd,QAAQkZ,SAASC,SAASiE,GACxC,QAApBuG,EAAAv1B,KAAKsqB,aAAa/1B,UAAE,IAAAghC,GAApBA,EAAsBzjB,SAAS4Z,kBAAkBuD,K,8EC50CpD,MAAMuG,EACL5lB,YAAY6lB,GACXz1B,KAAKy1B,IAAM,IAAItuB,WAAWsuB,GAC1Bz1B,KAAK01B,OAAS,EAGfC,QAAQC,EAAMC,GAAO,GACpB,IAAIC,EAAI,EACR,IAAK,IAAIvhC,EAAI,EAAGA,EAAIqhC,EAAMrhC,IACtByL,KAAK6c,GAAG7c,KAAK01B,YACfI,GAAQ,GAAKvhC,GAIf,OAHGshC,GACCC,EAAO,GAAIF,EAAK,IAClBE,GAAO,GAAGF,GACLE,EAERjZ,GAAGe,GACF,MAAM8X,EAAS9X,GAAK,EACd1oB,EAAY,EAAJ0oB,EACd,OAAQ5d,KAAKy1B,IAAIC,GAAW,GAAGxgC,EAAU,EAAI,GAIxC,MAAM6gC,EAmBZ,aAAaN,GACZ,MAAM3hB,EAAK,IAAI3M,WAAWsuB,GAAK,GAC/B,MAAO,CAACM,EAAOC,UAAUliB,GAAKiiB,EAAOE,WAAWniB,GAAIpZ,KAAKq7B,EAA3BA,CAAmCN,EAAIt6B,MAAM,KAG5E,oBAAoBy6B,GACnB,MAAM9hB,EAAK8hB,EAAKD,QAAQ,GAAG,GACrB3f,EAAI4f,EAAKD,QAAQ,IAAI,IACrB9M,EAAI+M,EAAKD,QAAQ,IAAI,IACrB7M,EAAI8M,EAAKD,QAAQ,IAAI,IACrB37B,EAAIkV,KAAK8gB,KAAK9gB,KAAK+gB,IAAI,GAAO/gB,KAAKgnB,IAAIlgB,EAAG,GAAK9G,KAAKgnB,IAAIrN,EAAG,GAAK3Z,KAAKgnB,IAAIpN,EAAG,MAClF,OAAOhV,GACN,KAAK,EACJ,OAAO,IAAI9D,QAAiBgG,EAAG6S,EAAGC,EAAG9uB,GACtC,KAAK,EACJ,OAAO,IAAIgW,QAAiBhW,EAAG6uB,EAAGC,EAAG9S,GACtC,KAAK,EACJ,OAAO,IAAIhG,QAAiB6Y,EAAG7uB,EAAG8uB,EAAG9S,GACtC,KAAK,EACJ,OAAO,IAAIhG,QAAiB6Y,EAAGC,EAAG9uB,EAAGgc,GACtC,QACC,OAAO,IAAIhG,SAGd,kBAAkBylB,GAEjB,IAAIU,EAAO,IAAIC,SAASX,EAAIt6B,MAAM,EAAE,KAC1Bg7B,EAAKE,WAAW,GAAE,GACjBF,EAAKE,WAAW,GAAE,GAClBF,EAAKE,WAAW,GAAE,GAE7B,IAAIC,EAAS,IAAIC,aAAad,EAAIt6B,MAAM,EAAE,KAC1C8iB,EAAMC,SAAW,IAAIlO,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IAC/D,MAAMV,EAAO,IAAIJ,EAAaC,EAAIt6B,MAAM,GAAG,KACrCqwB,EAAY,GAClB,IAAI,IAAIj3B,EAAE,EAAGA,EAAE,EAAGA,IACjBi3B,EAAUz2B,KAAKghC,EAAOS,aAAaZ,IAEpC3X,EAAME,SAAW,IAAInO,QAAiBwb,EAAU,GAAGxV,GAAGwV,EAAU,GAAG3C,GAAG2C,EAAU,GAAG1C,EAAE0C,EAAU,GAAGzC,GAClG9K,EAAMG,WAAa,IAAIpO,QAAiBwb,EAAU,GAAGxV,GAAGwV,EAAU,GAAG3C,GAAG2C,EAAU,GAAG1C,EAAE0C,EAAU,GAAGzC,GACpG9K,EAAMI,WAAa,IAAIrO,QAAiBwb,EAAU,GAAGxV,GAAGwV,EAAU,GAAG3C,GAAG2C,EAAU,GAAG1C,EAAE0C,EAAU,GAAGzC,GACpG9K,EAAMK,WAAa,IAAItO,QAAiBwb,EAAU,GAAGxV,GAAGwV,EAAU,GAAG3C,GAAG2C,EAAU,GAAG1C,EAAE0C,EAAU,GAAGzC,GACpG9K,EAAMM,WAAa,IAAIvO,QAAiBwb,EAAU,GAAGxV,GAAGwV,EAAU,GAAG3C,GAAG2C,EAAU,GAAG1C,EAAE0C,EAAU,GAAGzC,GACpG,IAAI2M,EAAS,GAyIb,OAxIAY,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMO,gBAAkB,IAAIxO,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACtEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMQ,WAAa,IAAIzO,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACjEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMS,UAAY4X,EAAO,GAEzBA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMU,gBAAkB,IAAI3O,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACtEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMW,WAAa,IAAI5O,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACjEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMY,UAAYyX,EAAO,GAGzBA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMa,gBAAkB,IAAI9O,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACtEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMc,WAAa,IAAI/O,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACjEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMe,UAAYsX,EAAO,GAEzBA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMgB,gBAAkB,IAAIjP,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACtEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMiB,WAAa,IAAIlP,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACjEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMkB,UAAYmX,EAAO,GAEzBA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMmB,gBAAkB,IAAIpP,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACtErY,EAAMmB,gBAAkBnB,EAAMmB,gBAAgBrN,eAAe,GAC7DukB,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMoB,WAAa,IAAIrP,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACjEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMqB,UAAYgX,EAAO,GACzBrY,EAAMqB,UAA8B,EAAlBrB,EAAMqB,UAExBgX,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMsB,eAAiB,IAAIvP,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACrEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMuB,UAAY,IAAIxP,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IAChEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMwB,SAAW6W,EAAO,GAExBA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMyB,kBAAoB,IAAI1P,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACxEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM0B,YAAc2W,EAAO,GAE3BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM2B,kBAAoB,IAAI5P,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACxEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM4B,YAAcyW,EAAO,GAE3BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM6B,kBAAoB,IAAI9P,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACxEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM8B,YAAcuW,EAAO,GAE3BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM+B,kBAAoB,IAAIhQ,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACxEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMgC,YAAcqW,EAAO,GAE3BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMiC,mBAAqB,IAAIlQ,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACzEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMkC,aAAemW,EAAO,GAE5BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMmC,mBAAqB,IAAIpQ,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACzEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMoC,aAAeiW,EAAO,GAE5BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMqC,iBAAmB,IAAItQ,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACvEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMsC,WAAa+V,EAAO,GAE1BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMuC,iBAAmB,IAAIxQ,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACvEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMwC,WAAa6V,EAAO,GAE1BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAMyC,kBAAoB,IAAI1Q,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACxEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM0C,YAAc2V,EAAO,GAE3BA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM2C,kBAAoB,IAAI5Q,SAAesmB,EAAO,GAAGA,EAAO,GAAGA,EAAO,IACxEA,EAAS,IAAK,IAAIG,WAAWhB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACrEq/B,GAAQ,EACRzX,EAAM4C,YAAcyV,EAAO,GAE3BA,EAAS,IAAK,IAAII,YAAYjB,EAAIt6B,MAAMu6B,EAAQA,EAAO,KAAMpN,IAAIjyB,GAAGA,EAAE,OACtEq/B,GAAQ,EACRzX,EAAM3e,OAASg3B,EAAO,GACfrY,EAGR,0BAA0BwX,GAEzB,MAAMkB,EAAW,IAAIC,eAAenB,EAAIt6B,MAAM,EAAG,IAAI,GAC/Cy6B,EAAO,IAAIJ,EAAaC,EAAIt6B,MAAM,IAClC07B,EAAuB,UAAVF,EAAqB,GAAKA,EACvCnL,EAAY,GAClB,IAAI,IAAIj3B,EAAE,EAAGA,EAAEsiC,EAAYtiC,IAC1Bi3B,EAAUz2B,KAAKghC,EAAOS,aAAaZ,IAC7B,GAAHrhC,GAAW,GAAHA,GACVi3B,EAAUj3B,GAAGw2B,UAAS,IAAI/a,SAAmBqkB,aAAa,IAAIrkB,QAAY,SAAc,EAAE,KAE5F,OAAOwb,EAGR,6BAA6BiK,GAI5B,MAAMxJ,EAAO,IAAIjc,WAAkB,IAAIumB,aAAad,EAAIt6B,MAAM,EAAG,MAC3D27B,EAAO,IAAK,IAAIJ,YAAYjB,EAAIt6B,MAAM,MAAOmtB,IAAIjyB,GAAGA,EAAE,OAC5D,MAAO,CAAC41B,EAAM6K,GAGf,uBAAuBrB,GAEtB,MAAO,IAAI,IAAItuB,WAAWsuB,IAAMnN,IAAKjyB,GAAYA,EAAE,KAGpD,uBAAuBo/B,GAEtB,MAAMkB,EAAW,IAAIC,eAAenB,EAAIt6B,MAAM,EAAG,IAAI,GACrD,GAAa,UAAVw7B,EAAmB,CACrB,MAAMI,EAAM,IAAIR,aAAad,EAAIt6B,MAAM,KAChC8e,EAAG8O,GAAK,CAAQ,IAAPgO,EAAI,GAAe,IAAPA,EAAI,IAChC,MAAO,CAAC9c,EAAG8O,IAIb,qBAAqB0M,GAEpB,OAAO,IAAItuB,WAAWsuB,EAAI,KAE3BuB,EApPYjB,EAAM7iB,eAAN6iB,EAAM,aACE,CACnB,OACAA,EAAOkB,mBACPlB,EAAOmB,sBACPnB,EAAOoB,gBACPpB,EAAOqB,gBACPrB,EAAOsB,cACPtB,EAAOuB,aACPpkB,eATW6iB,EAAM,YAUC,MAClB18B,EACA,YACA,eACA,QACA,QACA,MACA,UC1BF,MAAMk+B,UAAwBvnB,OAC7BJ,cACC4nB,QACAx3B,KAAK5G,KACL4G,KAAKy3B,OAELz3B,KAAK03B,iBAAiB,QAAUhgC,IAC/B,QAAiB2B,IAAd2G,KAAK5G,KAAmB,CAC1B,IAAIA,EAAO1B,EAAMzD,KAEjB+L,KAAK5G,KAAOA,OAGZ2B,QAAQ+I,IAAI,qBAAsB9D,KAAK5G,KAAM,KAAMA,MACpD4G,KAAK23B,cAAc,CAACpgC,KAAM,SAAUtD,UAAMoF,MAG5Cu+B,QACC53B,KAAKy3B,OAAOG,QACZ53B,KAAKy3B,YAASp+B,EAEfw+B,MAAMtpB,GACL,IAAIupB,EAAaC,EAAgB,cAGhC/3B,KAAKy3B,OAFS,GAAZK,EAEY,IAAIE,UAAUzpB,EAAKwpB,EAAgB,QAAU,CAAC,cAAgB,gBAAiB,CAAC,iBAIhF,IAAIC,UAAUzpB,EAAKwpB,EAAgB,QAAU,CAAC,eAAgB,IAE7E/3B,KAAKy3B,OAAOQ,UAAaC,IACxB,MAAMvgC,EAAUid,KAAK7B,MAAMmlB,EAAIjkC,MAE/B0D,EAAQJ,KAAOI,EAAQwgC,SAGvBn4B,KAAK23B,cAAchgC,IAEpBqI,KAAKy3B,OAAOW,OAAU1gC,IACrBqD,QAAQ+I,IAAI,qCAAqCpM,IAElDsI,KAAKy3B,OAAOhgC,QAAUsD,QAAQ6gB,KAC9B5b,KAAKy3B,OAAOY,QAAW3gC,IACtBsI,KAAK23B,cAAc,CAClBpgC,KAAM,QACNtD,KAAMyD,KAIT4gC,OAAOJ,GAENA,EAAIK,OAASv4B,KAAK5G,KAClB4G,KAAKy3B,OAAOe,KAAK5jB,KAAKC,UAAUqjB,KAIlC,SAASO,EAA2BC,GACnC,IAAIC,EAAMD,EAAKC,IACXC,EAAQ39B,OAAO49B,OAAS,YAAc,iBACtCF,EAAIG,SAASF,KAChBD,EAAMA,EAAIhe,QAAQ,IAAIoe,OAAO,qBAAsB,WAAWH,IAC/D,IACC,IAAII,EAAgB,IAAI3qB,IAAIpT,OAAOqiB,SAAS3mB,MAAM4mB,aAAaxjB,IAAI,SAC/Dk/B,EAAc,IAAI5qB,IAAIpT,OAAOqiB,SAAS3mB,MAAM4mB,aAAaxjB,IAAI,OAC7Dm/B,EAAc,IAAI7qB,IAAIpT,OAAOqiB,SAAS3mB,MAAM4mB,aAAaxjB,IAAI,OAC7Do/B,EAAU,GACXF,IACFE,GAAW,yBAAyBF,GAClCD,IACFG,GAAW,2BAA2BH,GACpCE,IACFC,GAAW,yBAAyBD,GACrCP,EAAMA,EAAIS,WAAW,IAAIL,OAAO,cAAe,KAAM,KAAKI,GAC1D,MAAM9iC,GACN0E,QAAQ+I,IAAI,+BAEb,MAAO,CACNvM,KAAMmhC,EAAKnhC,KACXohC,IAAKA,GAIP,MAAMU,UAAuBrpB,OAC5BJ,YAAY0pB,EAAM7B,EAAQ8B,GACzB/B,QACAx3B,KAAKs5B,KAAOA,EACZt5B,KAAKy3B,OAASA,EAEd,IAAI+B,EAAY,CACf,WAAa,CACZ,CACCC,KAAM,CAAC,wCAKApgC,IAAPkgC,IACFC,EAAWE,WAAaF,EAAWE,WAAWC,OAAOJ,IAGtD,IAAIK,EAAW,CAAC,SAAY,CAAC,CAACC,yBAAyB,KACvD75B,KAAK85B,GAAK,IAAIC,kBAAkBP,EAAYI,GAC5C55B,KAAK85B,GAAGE,oBAAsB,KAAKj/B,QAAQ+I,IAAI,wBAE/C,IAAIm2B,EAASlC,EAAgB,QAG7B/3B,KAAK85B,GAAGI,eAAe,QAAS,CAC/BnO,UAAWkO,EAAS,WAAa,aAKlCj6B,KAAK85B,GAAGI,eAAe,QAAS,CAC/BnO,UAAWkO,EAAQ,WAAa,aAGjCj6B,KAAK85B,GAAGK,QAAWziC,IAClB,IACC,IAAI0iC,EAAQrC,EAAgB,SAC5B,GAAGqC,EACF,IAAI,IAAIC,KAAYr6B,KAAK85B,GAAGQ,eAC3BD,EAASE,iBAAmBH,EAC9B,MAAM/jC,GACN0E,QAAQ+I,IAAI,2BAEb9D,KAAK23B,cAAc,CAACpgC,KAAM,QAAStD,KAAMyD,KAG1CsI,KAAK85B,GAAGU,2BAA8B9iC,IACJ,gBAA9BsI,KAAK85B,GAAGW,oBACV1/B,QAAQ+I,IAAI,mDAAqDpM,IAMnEsI,KAAK85B,GAAGY,eAAkBhjC,IACtBA,EAAMijC,WACR36B,KAAKy3B,OAAOa,OAAO,CAClBH,SAAU,YACVlkC,KAAMyD,EAAMijC,UACZC,OAAQ56B,KAAKs5B,QAMhBt5B,KAAK85B,GAAGe,cAAiBnjC,IAEpBuiC,IACHj6B,KAAK86B,YAAcpjC,EAAMqjC,QACzB/6B,KAAKg7B,YAAYh7B,KAAK86B,eAKrBb,IACFj6B,KAAK86B,YAAc96B,KAAK85B,GAAGmB,kBAAkBj7B,KAAKy3B,OAAOr+B,MACzD4G,KAAKg7B,YAAYh7B,KAAK86B,cAGxBlD,QACC,GAAG53B,KAAK85B,GAAG,CACP95B,KAAK86B,cACP96B,KAAKk7B,aAAal7B,KAAK86B,aACvB96B,KAAK86B,iBAAczhC,GAEpB,IAAI,MAAMD,KAAQ1E,OAAOymC,KAAKn7B,KAAK85B,IAC/B1gC,EAAKgiC,WAAW,QAClBp7B,KAAK85B,GAAG1gC,QAAMC,GAChB2G,KAAK85B,GAAGlC,QACR53B,KAAK85B,QAAKzgC,OAEV0B,QAAQ6gB,KAAK,0BAEd5b,KAAK23B,cAAc,CAACpgC,KAAK,UAI1B,cACC,IACC,IAAI8jC,QAAcr7B,KAAK85B,GAAGwB,cAC1BD,EAAQ5C,EAA2B4C,SAC7Br7B,KAAK85B,GAAGyB,oBAAoBF,GAClCr7B,KAAKw7B,wBACL,MAAMnlC,GACN0E,QAAQ6gB,KAAKvlB,IAGf,cAAcglC,GACb,IACCA,EAAQ5C,EAA2B4C,SAC7Br7B,KAAK85B,GAAG2B,qBAAqBJ,GACnC,IAAIK,QAAe17B,KAAK85B,GAAG6B,eAC3BD,EAASjD,EAA2BiD,SAC9B17B,KAAK85B,GAAGyB,oBAAoBG,GAClC17B,KAAKw7B,wBACL,MAAMnlC,GACN0E,QAAQ6gB,KAAKvlB,IAGf,eAAeqlC,GACd,IACCA,EAASjD,EAA2BiD,SAC9B17B,KAAK85B,GAAG2B,qBAAqBC,GACnC,MAAMrlC,GACN0E,QAAQ6gB,KAAKvlB,IAGfmlC,wBACCx7B,KAAKy3B,OAAOa,OAAO,CAClBH,SAAUn4B,KAAK85B,GAAG8B,iBAAiBrkC,KACnCtD,KAAM+L,KAAK85B,GAAG8B,iBACdhB,OAAQ56B,KAAKs5B,OAGfuC,YAAYlB,GACX36B,KAAK85B,GAAGgC,gBAAgB,IAAIC,gBAAgBpB,IAC3C5uB,MAAOjT,IACPiC,QAAQ6gB,KAAK9iB,EAAO,yBAA0B6hC,KAMhDK,YAAYD,GACXA,EAAQiB,WAAa,cACrBjB,EAAQ9C,UAAavgC,IACpBsI,KAAK23B,cAAc,CAACpgC,KAAM,UAAWtD,KAAMyD,EAAMzD,QAElD8mC,EAAQtjC,QAAUsD,QAAQ6gB,KAC1Bmf,EAAQ1C,QAAU,KACjBt9B,QAAQ+I,IAAI,YAAai3B,EAAQ7xB,QAElC6xB,EAAQ3C,OAAS,KAChBr9B,QAAQ+I,IAAI,WAAYi3B,EAAQ7xB,OAChClJ,KAAK23B,cAAc,CAACpgC,KAAM,cAAetD,UAAMoF,KAGjD6hC,aAAaH,GACZA,EAAQnD,QACRmD,EAAQ9C,eAAY5+B,EACpB0hC,EAAQtjC,aAAU4B,EAClB0hC,EAAQ1C,aAAUh/B,EAClB0hC,EAAQ3C,YAAS/+B,EAElBm/B,KAAKvkC,GACD+L,KAAK86B,aAA6C,SAA9B96B,KAAK86B,YAAYmB,YACvCj8B,KAAK86B,YAAYtC,KAAKvkC,GAExBioC,SAAS/D,EAAUlkC,GAClB+L,KAAKw4B,KAAK5jB,KAAKC,UAAU,CACxBsjB,SAAUA,EACVlkC,KAAMA,KAKRkoC,UAAU7vB,GACTtM,KAAKsM,OAASA,EACdtM,KAAKsM,OAAO8vB,YAAYzoB,QAAS0oB,IAChCr8B,KAAK85B,GAAGwC,SAASD,MAKb,MAAME,UAAevsB,OAC3BJ,cACC4nB,QAEAx3B,KAAKy3B,OAELz3B,KAAKw8B,IAAM,GAEXx8B,KAAKyF,WAAY,EAIlBg3B,MAAMnD,EAAMC,GAqBX,YApBoBlgC,IAAjB2G,KAAKw8B,IAAIlD,KACXt5B,KAAKw8B,IAAIlD,GAAQ,IAAID,EAAeC,EAAMt5B,KAAKy3B,YAAep+B,IAAPkgC,EAAmBv5B,KAAKu5B,KAAMA,GAClFv5B,KAAKsM,QACPtM,KAAKw8B,IAAIlD,GAAMQ,GAAGqC,UAAUn8B,KAAKsM,QAElCtM,KAAKw8B,IAAIlD,GAAM5B,iBAAiB,cAAgBrhC,IAC/C2J,KAAK23B,cAActhC,KAEpB2J,KAAKw8B,IAAIlD,GAAM5B,iBAAiB,UAAYrhC,IAG3C2J,KAAK23B,cAAc,CAACpgC,KAAM,UAAWtD,KAAMoC,EAAEpC,SAE9C+L,KAAKw8B,IAAIlD,GAAM5B,iBAAiB,QAAUrhC,IACzC2J,KAAK23B,cAActhC,KAEpB2J,KAAKw8B,IAAIlD,GAAM5B,iBAAiB,QAAS,YACjC13B,KAAKw8B,IAAIlD,MAGXt5B,KAAKw8B,IAAIlD,GAEjBoD,cACC,OAAO18B,KAAKyF,UAEb,SACC,OAAO/Q,OAAOioC,OAAO38B,KAAKw8B,KAAK,GAEhCI,QAAQruB,GACPvO,KAAKy3B,OAAS,IAAIF,EAClBv3B,KAAKy3B,OAAOC,iBAAiB,OAASrhC,IACrC2J,KAAKyF,WAAY,EACjBzF,KAAK23B,cAActhC,KAGpB2J,KAAKy3B,OAAOC,iBAAiB,SAAU,KACtC13B,KAAKy3B,OAAOC,iBAAiB,OAASrhC,IACrC2J,KAAKu5B,KAAOljC,EAAEpC,OAGf+L,KAAKy3B,OAAOC,iBAAiB,OAASrhC,IACrC,IAAIiS,EAAOjS,EAAEkiC,OACTgB,EAAOljC,EAAEpC,KACb8G,QAAQ+I,IAAI,SAAUwE,GACtBtI,KAAKy8B,MAAMn0B,EAAMixB,GAAM8B,UAExBr7B,KAAKy3B,OAAOC,iBAAiB,SAAWrhC,IACvC2J,KAAKy8B,MAAMpmC,EAAEkiC,QAAQsE,SAASxmC,EAAEpC,QAIjC+L,KAAKy3B,OAAOC,iBAAiB,QAAUrhC,IACtC2J,KAAKy8B,MAAMpmC,EAAEkiC,QAAQuE,QAAQzmC,EAAEpC,QAEhC+L,KAAKy3B,OAAOC,iBAAiB,YAAcrhC,IAC1C2J,KAAKy8B,MAAMpmC,EAAEkiC,QAAQsD,YAAYxlC,EAAEpC,QAEpC+L,KAAKy3B,OAAOC,iBAAiB,QAAUrhC,IACtC2J,KAAKy8B,MAAMpmC,EAAEkiC,QAAQX,YAIvB53B,KAAKy3B,OAAOI,MAAMtpB,GAGnBqpB,QACC53B,KAAKyF,WAAY,EAEjB,IAAI,IAAKrM,EAAM0gC,KAAOplC,OAAOu0B,QAAQjpB,KAAKw8B,KAEzC1C,EAAGlC,QAEJ53B,KAAKw8B,IAAM,GAERx8B,KAAKy3B,OACPz3B,KAAKy3B,OAAOG,QAEZ78B,QAAQ6gB,KAAK,6BAGf4c,KAAKvkC,GACD+L,KAAK85B,IACP95B,KAAK85B,GAAGtB,KAAKvkC,GAEfioC,SAAS/D,EAAUlkC,GACf+L,KAAK85B,IACP95B,KAAK85B,GAAGoC,SAAS/D,EAAUlkC,GAE7BkoC,UAAU7vB,GACTtM,KAAKsM,OAASA,EACd,IAAI,IAAKlT,EAAM0gC,KAAOplC,OAAOu0B,QAAQjpB,KAAKw8B,UAE1BnjC,IAAZygC,EAAGxtB,QACLwtB,EAAGqC,UAAU7vB,I,wCCxXbywB,EAAUt2B,EAAQ,QAAUu2B,aAC5BC,EAAsBx2B,EAAQ,QAC3B,IAAIM,EAAe,IAAIg2B,EAG9B,IAAIG,EAAS,6BAEb,SAASC,EAAcviC,EAAQT,GAC9B,OAAOzF,OAAOymC,KAAKvgC,GAAQwiC,KAAK3iC,GAAOG,EAAOH,KAASN,GAGxD,SAASkjC,IAER,MAAMC,EAAU,IAAInpB,KACpB,IAAIopB,EAAOD,EAAQE,cAEfC,EAAQH,EAAQI,WACpBD,GAAS,KAAOA,EAAQ,IAAItiC,OAAO,GAGnC,IAAIwiC,EAAOL,EAAQM,UACnBD,GAAQ,IAAMA,GAAMxiC,OAAO,GAG3B,IAAI0iC,EAAOP,EAAQQ,WACnBD,GAAQ,IAAMA,GAAM1iC,OAAO,GAG3B,IAAI4iC,EAAST,EAAQU,aACrBD,GAAU,IAAMA,GAAQ5iC,OAAO,GAG/B,IAAI8iC,EAASX,EAAQY,aACrBD,GAAU,IAAMA,GAAQ9iC,OAAO,GAG/B,MAAMqU,EAAO,GAAG+tB,KAAQE,KAASE,KAAQE,KAAQE,KAAUE,IAC3D,OAAOzuB,EAER,SAAS2uB,EAAYC,GAEnB,IACE7pC,EAAG8pC,EADDC,EAAO,EAEX,GAAmB,IAAfF,EAAI3pC,OAAc,OAAO6pC,EAC7B,IAAK/pC,EAAI,EAAGA,EAAI6pC,EAAI3pC,OAAQF,IAC1B8pC,EAAMD,EAAIG,WAAWhqC,GACrB+pC,GAASA,GAAQ,GAAKA,EAAQD,EAC9BC,GAAQ,EAGV,OADAvjC,QAAQ+I,IAAIs6B,EAAI,MAAMlvB,KAAK+gB,IAAIqO,IACxBpvB,KAAK+gB,IAAIqO,GAEX,MAAME,EACZ5uB,cAgFC,OA9EA7U,QAAQ+I,IAAI,qBACZ9D,KAAKwK,UAAY1T,SAASoN,eAAe,UACzClE,KAAKy+B,MACLz+B,KAAKyqB,MACLzqB,KAAK0+B,mBAAgBrlC,EACrB2G,KAAK2+B,kBACL3+B,KAAK4+B,iBACL5+B,KAAK6+B,sBACL7+B,KAAK8+B,wBACL9+B,KAAK++B,4BACL/+B,KAAKg/B,oBACLh/B,KAAKi/B,yBACLj/B,KAAKk/B,wBAA0B,GAC/Bl/B,KAAKm/B,4BAA8B,GACnCn/B,KAAKo/B,yBAA2B,GAChCp/B,KAAKq/B,uBAAyB,GAC9Br/B,KAAKmQ,OACLnQ,KAAKs/B,SAELt/B,KAAKu/B,MAAQzoC,SAAS+P,cAAc,gBACpC7G,KAAKw/B,WACLx/B,KAAKihB,MAAQ,GACbjhB,KAAKy/B,OAAS,GACdz/B,KAAK0/B,iBAAmB,GACxB1/B,KAAK2/B,MAAQ,IAAI3vB,OACjBhQ,KAAK4/B,SAAW,IAAI7H,EAEpB/3B,KAAK6C,SACL7C,KAAKqH,IACCrH,KAAK6/B,GAAK,IAAI9C,EACpB/8B,KAAK8/B,gBACL9/B,KAAK+/B,oBAAsB,GAC3B//B,KAAKggC,kBAAoB,GACzBhgC,KAAKigC,aAAe,GACpBjgC,KAAKkgC,cAAgB,GAErBlgC,KAAKmgC,WAAa,IAAItW,EACtB7pB,KAAKogC,UACLpgC,KAAK5C,eAAiB,GACtB4C,KAAKqgC,0BAAuBhnC,EAC5B2G,KAAKsgC,OACLtgC,KAAKugC,SACLvgC,KAAKwgC,UACLxgC,KAAKygC,SAELzgC,KAAK0gC,OACL1gC,KAAK2gC,QAAS,EAEd3gC,KAAK4gC,kBACL5gC,KAAKkqB,aACLlqB,KAAK6gC,aACL7gC,KAAKmqB,YACLnqB,KAAK8gC,cACL9gC,KAAK+gC,aAAe,EACpB/gC,KAAKuc,OACLvc,KAAK3C,OAAS,GACd2C,KAAKghC,WAAa,GAClBhhC,KAAKihC,SAAW,EAChBjhC,KAAKwP,KAAO,EACZxP,KAAKkhC,SAAU,EACflhC,KAAKmhC,WAAY,EACjBnhC,KAAKohC,YAAc,EACnBphC,KAAKqhC,YAAa,EAClBrhC,KAAKshC,YAAa,EAClBthC,KAAKuhC,OAAS,EACRvhC,KAAKwhC,OAAS,EACpBxhC,KAAKyhC,eAAiB,KACtBzhC,KAAK0hC,kBAAoB,KACzB1hC,KAAK2hC,UAAY,IAAI3xB,QACrBhQ,KAAK4hC,OAAS,GACd5hC,KAAK6hC,WAAa,GAClB7hC,KAAK8hC,QAAU,GACf9hC,KAAK+hC,WAAY,EACjB/hC,KAAKgiC,eAAe,GACpBhiC,KAAKiiC,QAAU,EACfjiC,KAAKkiC,cACLliC,KAAKmiC,eAAiB,GAEf,MAGNniC,KAAKoiC,eAELpiC,KAAKqiC,cAAgBriC,KAAKoQ,aAC1BpQ,KAAKsiC,eAAiBtiC,KAAKqiC,cAC3BriC,KAAK1C,QAAU,GACf0C,KAAKuiC,YACLviC,KAAKwiC,eAELvnC,OAAOy8B,iBAAkB,SAAU,KAAK13B,KAAKyiC,mBAC7CxnC,OAAOy8B,iBAAiB,qBAAqB,WAC5C38B,QAAQ+I,IAAI7I,OAAOynC,aAChBznC,OAAOynC,YAGT1iC,KAAKyiC,oBAOJ,GAGHziC,KAAKyiC,iBAILziC,KAAKsQ,SAELvJ,EAAa4B,YAAY,YAAayR,eAAeqf,EAAKrgC,EAAK4O,SACxDhI,KAAK2iC,QAAQlJ,EAAKrgC,GACxB4O,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,YAAayR,eAAeqf,EAAKrgC,EAAK4O,SACxDhI,KAAK4iC,cAAcnJ,EAAKrgC,GAC9B4O,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,sBAAwByR,eAAehhB,EAAKypC,EAAO76B,SACrEhI,KAAK8iC,kBAAkB1pC,EAAKypC,GAClC76B,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,sBAAuByR,eAAehhB,EAAK4O,SAC7DhI,KAAK+iC,kBAAkB3pC,GAC7B4O,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,oBAAqByR,eAAeqf,EAAKrgC,EAAK4O,SAChEhI,KAAKgjC,gBAAgBvJ,EAAKrgC,GAChC4O,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,eAAgByR,eAAeqf,EAAKzxB,SACtDhI,KAAKijC,aAAaxJ,GACxBzxB,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,cAAeyR,eAAe7L,EAAI20B,SACpDljC,KAAKmjC,YAAY50B,EAAI20B,IAE1BxoC,KAAKsF,OACP+G,EAAa4B,YAAY,kBAAmByR,eAAeqf,EAAKzxB,SACzDhI,KAAKojC,cAAc3J,GACzBzxB,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,qBAAsByR,eAAeqf,EAAKzxB,SAC5DhI,KAAKqjC,iBAAiB5J,GAC5BzxB,KACCtN,KAAKsF,OAKP+G,EAAa4B,YAAY,oBAAqB3I,KAAKsjC,gBAAgB5oC,KAAKsF,OACxE+G,EAAa4B,YAAY,sBAAuB3I,KAAKujC,kBAAkB7oC,KAAKsF,OAC5E+G,EAAa4B,YAAY,gBAAiB3I,KAAKwjC,YAAY9oC,KAAKsF,OAChE+G,EAAa4B,YAAY,aAAc,SAAS86B,GAC/CzjC,KAAKugC,SAASkD,QAAUA,EACxBzjC,KAAK0jC,cAAcD,QAAUA,EAC7BzjC,KAAK2jC,oBAAoBF,QAAUA,EACnCzjC,KAAK4jC,WAAWH,QAAUA,GAQzB/oC,KAAKsF,OACP+G,EAAa4B,YAAY,UAAW,SAASjK,GAC5CsB,KAAK2gC,OAASjiC,GACbhE,KAAKsF,OACP+G,EAAa4B,YAAY,WAAY,SAASzB,GAC7CnM,QAAQ+I,IAAI,iBACZ9D,KAAKsgC,OAAO9H,KAAKtxB,IAChBxM,KAAKsF,OACP+G,EAAa4B,YAAY,cAAe,SAASzB,GAChDnM,QAAQ+I,IAAI,aACZ9D,KAAKsgC,OAAO9H,KAAKtxB,IAChBxM,KAAKsF,OACP+G,EAAa4B,YAAY,aAAc3I,KAAK6jC,SAASnpC,KAAKsF,OAC1D+G,EAAa4B,YAAY,cAAe3I,KAAK8jC,UAAUppC,KAAKsF,OAE5D+G,EAAa4B,YAAY,YAAayR,eAAe5U,EAAKwC,GAGzD,GAFAhI,KAAKu/B,MAAMlzB,OAEPrM,KAAKsgC,OAAO5D,cAqBf18B,KAAKsgC,OAAO1I,QACZ7wB,EAAaC,KAAK,kBAtBW,CAC7BhH,KAAKsgC,OAAO1D,QAAQM,EAAS13B,GAC7BxF,KAAK+jC,aAEL/jC,KAAKiiC,QAAU,EACfjiC,KAAKgkC,SAAS,EACdhkC,KAAKikC,MAAMC,gBACX,IAAIC,EAAOnkC,KAAKikC,MAAMG,WAAYpkC,KAAKqkC,mBACvCF,EAAKv3B,OACL5M,KAAKmgC,WAAWliB,MAAM3e,OAAS,EAuBhC0I,KACCtN,KAAKsF,OAEP+G,EAAa4B,YAAY,cAAe,SAASzC,GAChDA,EAASlG,KAAKsgC,OAAO5D,gBACpBhiC,KAAKsF,OAEP+G,EAAa4B,YAAY,iBAAmB,SAASG,GACpD9I,KAAKskC,eAAex7B,IACnBpO,KAAKsF,OACP+G,EAAa4B,YAAY,gBAAgB,SAASX,GACjD,IAAI2K,EAAS3S,KAAKukC,cAClBv8B,EAAe2K,IACdjY,KAAKsF,OACP+G,EAAa4B,YAAY,aAAa,SAASX,GAE9ChI,KAAKs/B,SAASkF,QAAQ,IAAI,KAC1BxkC,KAAKsiC,eAAemC,OAAS,EAC7BzkC,KAAKsiC,eAAevxB,yBACpB/Q,KAAKs/B,SAASx/B,OAAOE,KAAKyqB,MAAOzqB,KAAKsiC,gBACtC,IAAIoC,EAAU,aACd,IAAI/xB,EAAS3S,KAAKs/B,SAASqF,WAAWC,UAAUF,GAChD18B,EAAe2K,EAAOgI,QAAQ+pB,EAAS,uBACvC1kC,KAAKs/B,SAASkF,QAAQxkC,KAAKwK,UAAU/C,YAAYzH,KAAKwK,UAAUq6B,cAChE7kC,KAAKsiC,eAAemC,OAASzkC,KAAKwK,UAAU/C,YAAYzH,KAAKwK,UAAUq6B,aACvE7kC,KAAKsiC,eAAevxB,0BACnBrW,KAAKsF,OACP+G,EAAa4B,YAAY,YAAY,SAASX,GAC7CA,EAAehI,KAAK3C,SACnB3C,KAAKsF,OACP+G,EAAa4B,YAAY,gBAAiByR,eAAetH,EAAK9K,SACvDhI,KAAK8kC,YAAYhyB,GACvB9K,KACCtN,KAAKsF,OACP+G,EAAa4B,YAAY,SAAW,SAAStO,GAC5C,GAAGA,GAAM2F,KAAK6hC,WAMb,OAJA7hC,KAAK6hC,WAAa,GAClB7hC,KAAKyqB,MAAMoY,OAAQ7iC,KAAK0hC,wBACxB1hC,KAAKyqB,MAAMoY,OAAQ7iC,KAAKyhC,gBAIhB,UAANpnC,GAIF2F,KAAKyqB,MAAMzY,IAAKhS,KAAKyhC,gBACrBzhC,KAAKyqB,MAAMoY,OAAQ7iC,KAAK0hC,oBAET,aAARrnC,IAIP2F,KAAKyqB,MAAMoY,OAAQ7iC,KAAKyhC,gBACxBzhC,KAAKyqB,MAAMzY,IAAKhS,KAAK0hC,oBAEtB1hC,KAAK6hC,WAAaxnC,GAEjBK,KAAKsF,OACP+G,EAAa4B,YAAY,cAAc,SAASoF,EAASC,GAExD,IAAI+2B,EAAO/kC,KAAK3C,OAAO0Q,GACvB/N,KAAK3C,OAAO1H,OAAOoY,EAAS,GAC5B/N,KAAK3C,OAAO1H,OAAOqY,EAAU,EAAG+2B,GAEhC,IAAIC,EAAQhlC,KAAKghC,WAAWjzB,GAC5B/N,KAAKghC,WAAWrrC,OAAOoY,EAAS,GAChC/N,KAAKghC,WAAWrrC,OAAOqY,EAAU,EAAGg3B,IACnCtqC,KAAKsF,OACP+G,EAAa4B,YAAY,eAAe,SAASoF,EAASC,GAEzD,IAAI+2B,EAAO/kC,KAAK1C,QAAQyQ,GACxB/N,KAAK1C,QAAQ3H,OAAOoY,EAAS,GAC7B/N,KAAK1C,QAAQ3H,OAAOqY,EAAU,EAAG+2B,IAGhCrqC,KAAKsF,OACP+G,EAAa4B,YAAY,eAAe,SAASG,GAEhD9I,KAAK3C,OAAO1H,OAAOmT,EAAO,GAC1B9I,KAAKghC,WAAWrrC,OAAOmT,EAAO,IAC7BpO,KAAKsF,OACP+G,EAAa4B,YAAY,eAAe,SAASkE,GAChD7M,KAAKohC,YAAcv0B,EAAM,KACxBnS,KAAKsF,OACP+G,EAAa4B,YAAY,YAAY,SAASG,GAC7C9I,KAAKwP,KAAOxP,KAAKqhC,YACjBrhC,KAAKihC,SAAWn4B,GAEfpO,KAAKsF,OACP+G,EAAa4B,YAAY,WAAWyR,eAAetR,EAAO1P,EAAM4O,GAE/DhI,KAAKiiC,OAASn5B,EACd9I,KAAKgkC,SAAS,EACdhkC,KAAKikC,MAAMC,gBACX,IAAIC,EAAOnkC,KAAKikC,MAAMG,WAAYpkC,KAAKgiC,eAAel5B,GAAOyM,MAC7D4uB,EAAKv3B,OAGL,IAAIq4B,EAAS,GACTC,EAAKllC,KAAKmgC,WACVgF,EAA2B,GAC3BC,EAAwB,GACxBC,EAA4B,GAC5BC,EAAwB,GACxBC,EAAiB,GACrB,MAAMC,EAAY,IAAIC,IACtB,QAA8BpsC,GAA3B2G,KAAK0+B,cAAcprB,OACtB,CACCiyB,EAAiB1b,EAAuB6b,YAAY1lC,KAAK0+B,eAEzD1+B,KAAK0+B,cAAciH,kBAAkBC,sBAAsBjyB,QAAQ,CAACxZ,EAAOM,KAC1E8qC,EAAexwC,KAAK0F,KAIrB,IAAM,IAAIlG,EAAI,EAAGA,EAAIgxC,EAAe9wC,OAAQF,IAC3C8wC,EAA0BtwC,KAAK,IAGhCiL,KAAK0+B,cAAcmH,kBAAkBC,aAAanyB,QAAQ,CAACxZ,EAAOM,UAEzDpB,GAALoB,GAEFN,EAAM4rC,OAAOpyB,QAASjZ,IACrBA,EAAKsrC,WAAWryB,QAASsyB,GAAcT,EAAU30B,IAAIo1B,EAAU7sC,KAAM6sC,YAQzE,CACC,IAAM,IAAI1xC,EAAI,EAAGA,EAAIyL,KAAKmgC,WAAW7V,aAAa71B,OAAQF,IACzD8wC,EAA0BtwC,KAAK,IAEhC,IAAM,IAAIR,EAAI,EAAGA,EAAIyL,KAAKy/B,OAAOhrC,OAAQF,IAExC,IAAI,IAAIqpB,EAAI,EAAGA,EAAI5d,KAAKy/B,OAAOlrC,GAAGE,OAAQmpB,SAEbvkB,GAAzB2G,KAAKy/B,OAAOlrC,GAAGqpB,GAAGsoB,OACpBV,EAAU30B,IAAI7Q,KAAKy/B,OAAOlrC,GAAGqpB,GAAGsoB,MAAM9sC,KAAM4G,KAAKy/B,OAAOlrC,GAAGqpB,GAAGsoB,OAQlEV,EAAU7xB,QAAQ,KACjB2xB,EAAuBvwC,KAAK,MAG7B,IAAI,IAAIqF,EAAE,EAAGA,EAA2C,IAAzC4F,KAAKgiC,eAAel5B,GAAOyM,KAAKjG,SAAelV,GAAI,IAAO,GACzE,CACC,IAAIiW,EAAQjW,EAAE,IACd4F,KAAKikC,MAAM3zB,OAAO,EAAI,IACtB,IAAI6E,EAAOnV,KA6BX,GA5BAA,KAAKogC,UAAU+F,UAAU,SAAWzd,GAInC,GAFAwc,EAAGpb,aAAapB,EAAM0d,KAAKx1B,SAASC,IAAI6X,EAAM9X,SAASoF,EAAE0S,EAAM9X,SAASiY,EAAEH,EAAM9X,SAASkY,GACzFoc,EAAGpb,aAAapB,EAAM0d,KAAKC,WAAWx1B,IAAI6X,EAAM2d,WAAWrwB,EAAE0S,EAAM2d,WAAWxd,EAAEH,EAAM2d,WAAWvd,EAAEJ,EAAM2d,WAAWtd,GACtG,GAAXL,EAAM0d,KAAUjxB,EAAKsqB,OAAOhrC,OAAO,EACtC,CACC,IAAI,IAAI6xC,EAAK,EAAGA,EAAK5d,EAAM6d,sBAAsB9xC,OAAQ6xC,IAExD,IAAI,IAAI7wC,EAAE,EAAGA,GAAiB,QAAhB+wC,EAACrxB,EAAKsqB,OAAO6G,UAAG,IAAAE,OAAA,EAAfA,EAAiB/xC,QAAQgB,IACxC,KAAA+wC,OAC8BntC,GAA1B8b,EAAKsqB,OAAO6G,GAAI7wC,GAAGywC,QACtB/wB,EAAKsqB,OAAO6G,GAAI7wC,GAAGywC,MAAMK,sBAAsBpxB,EAAKsqB,OAAO6G,GAAI7wC,GAAGqe,IAAM,GAI1E,IAAI,IAAI8J,EAAI,EAAGA,EAAI8K,EAAM6d,sBAAsB9xC,OAAQmpB,IACvD,CACC,IAAI,IAAInoB,EAAE,EAAGA,GAAgB,QAAfgxC,EAACtxB,EAAKsqB,OAAO7hB,UAAE,IAAA6oB,OAAA,EAAdA,EAAgBhyC,QAAQgB,IACvC,KAAAgxC,OAC6BptC,GAAzB8b,EAAKsqB,OAAO7hB,GAAGnoB,GAAGywC,QACrB/wB,EAAKsqB,OAAO7hB,GAAGnoB,GAAGywC,MAAMK,sBAAsBpxB,EAAKsqB,OAAO7hB,GAAGnoB,GAAGqe,IAAM5E,KAAKvC,IAAIwI,EAAKsqB,OAAO7hB,GAAGnoB,GAAGywC,MAAMK,sBAAsBpxB,EAAKsqB,OAAO7hB,GAAGnoB,GAAGqe,IAAI4U,EAAM6d,sBAAsB3oB,GAAGzI,EAAKsqB,OAAO7hB,GAAGnoB,GAAGixC,SAErMvxB,EAAKwxB,eAAe/oB,EAAE8K,EAAM6d,sBAAsB3oB,SAIrDsnB,EAAG50B,cAE2BjX,GAA3B2G,KAAK0+B,cAAcprB,OACtB,CACCtT,KAAK0+B,cAAcpuB,OAAS,KAC5B,IAAI8kB,EAAImQ,EAAe,GAAG30B,SAC1Bu0B,EAAyBpwC,KAAKqgC,EAAIpf,EAAEof,EAAIvM,EAAEuM,EAAItM,GAC9Csc,EAAsBrwC,KAAKsb,GAC3B,IAAM,IAAI9b,EAAI,EAAGA,EAAIgxC,EAAe9wC,OAAQF,SAErB8E,GAAnBksC,EAAehxC,IACjB8wC,EAA0B9wC,GAAGQ,KAAKwwC,EAAehxC,GAAG8xC,WAAWrwB,EAC9DuvB,EAAehxC,GAAG8xC,WAAWxd,EAC7B0c,EAAehxC,GAAG8xC,WAAWvd,EAC7Byc,EAAehxC,GAAG8xC,WAAWtd,OAKjC,CAGC,IAAIqM,EAAI8P,EAAG5a,aAAa,GAAG1Z,SAC3Bu0B,EAAyBpwC,KAAKqgC,EAAIpf,EAAEof,EAAIvM,EAAEuM,EAAItM,GAC9Csc,EAAsBrwC,KAAKsb,GAC3B,IAAM,IAAI9b,EAAI,EAAGA,EAAI2wC,EAAG5a,aAAa71B,OAAQF,SAErB8E,GAApB6rC,EAAG5a,aAAa/1B,IAClB8wC,EAA0B9wC,GAAGQ,KAAKmwC,EAAG5a,aAAa/1B,GAAG8xC,WAAWrwB,EAAEkvB,EAAG5a,aAAa/1B,GAAG8xC,WAAWxd,EAAEqc,EAAG5a,aAAa/1B,GAAG8xC,WAAWvd,EAAEoc,EAAG5a,aAAa/1B,GAAG8xC,WAAWtd,GAGnK,IAAIvvB,EAAE,EACNgsC,EAAU7xB,QAASxZ,IAClBmrC,EAAuB9rC,GAAK8rC,EAAuB9rC,GAAGmgC,OAAOx/B,EAAMosC,sBAAsBje,IAAKtS,GAAMA,IACpGxc,MAGF,QAA8BH,GAA3B2G,KAAK0+B,cAAcprB,OACtB,CACC,MAAMszB,EAAa,IAAI52B,QAA2Bu1B,EAAe,GAAGnsC,KAAK,YAAagsC,EAAsB9c,IAAKtS,GAAMA,GAAImvB,EAAyB7c,IAAKtS,GAAMA,IAC/JivB,EAAOlwC,KAAK6xC,GACZ,IAAM,IAAIryC,EAAI,EAAGA,EAAIgxC,EAAe9wC,OAAQF,IAE3C,QAAsB8E,GAAnBksC,EAAehxC,GAClB,CACC,MAAMsyC,EAAe,IAAI72B,QAA+Bu1B,EAAehxC,GAAG6E,KAAK,cAAegsC,EAAsB9c,IAAKtS,GAAMA,GAAIqvB,EAA0B9wC,GAAG+zB,IAAKtS,GAAMA,IAC3KivB,EAAOlwC,KAAK8xC,QAKf,CACC,MAAMD,EAAa,IAAI52B,QAA2Bk1B,EAAG5a,aAAa,GAAGlxB,KAAK,YAAagsC,EAAsB9c,IAAKtS,GAAMA,GAAImvB,EAAyB7c,IAAKtS,GAAMA,IAChKivB,EAAOlwC,KAAK6xC,GACZ,IAAM,IAAIryC,EAAI,EAAGA,EAAIyL,KAAKmgC,WAAW7V,aAAa71B,OAAQF,IAEzD,QAAuB8E,GAApB6rC,EAAG5a,aAAa/1B,GACnB,CACC,MAAMsyC,EAAe,IAAI72B,QAA+Bk1B,EAAG5a,aAAa/1B,GAAG6E,KAAK,cAAegsC,EAAsB9c,IAAKtS,GAAMA,GAAIqvB,EAA0B9wC,GAAG+zB,IAAKtS,GAAMA,IAC5KivB,EAAOlwC,KAAK8xC,IAKf,IAAIrtC,EAAE,EACNgsC,EAAU7xB,QAASlZ,IAClB,MAAMqsC,EAAW,IAAI92B,QAA0BvV,EAAIrB,KAAK,yBAAyBgsC,EAAsB9c,IAAKtS,GAAMA,GAAGsvB,EAAuB9rC,GAAG8uB,IAAKtS,GAAIA,IACxJivB,EAAOlwC,KAAK+xC,GACZttC,MAED,MAAM+b,EAAO,IAAIvF,OAAqB,oBAAqBhQ,KAAKgiC,eAAel5B,GAAOyM,KAAKjG,SAAU21B,GACrGjlC,KAAK0+B,cAAcqI,WAAa,CAACxxB,GAEjC,MAAMyxB,EAAM,IAAIC,KAAM,CAAEjnC,KAAKgiC,eAAel5B,GAAOy2B,OAAU,CAAEhoC,KAAM,cAErEyI,KAAKknC,gBAAgBF,EAAI7I,EAAY/kC,GAAM4O,QAEb3O,GAA3B2G,KAAK0+B,cAAcprB,cACftT,KAAK2iC,QAAQ3iC,KAAK2+B,kBAAkB3+B,KAAK2+B,mBAMhD3+B,KAAKiiC,QAAU,EACfjiC,KAAKgkC,SAAS,EACdhkC,KAAKikC,MAAMC,gBACXC,EAAOnkC,KAAKikC,MAAMG,WAAYpkC,KAAKqkC,mBACnCF,EAAKv3B,OACL,IAAIkI,EAAO9U,KAAK0+B,cAAc5pB,KAC9B/N,EAAaC,KAAK,uBAAuB8N,EAAK9U,KAAKgiC,eAAel5B,GAAOyM,OAGxE7a,KAAKsF,OACP+G,EAAa4B,YAAY,aAAa,SAASG,GAE9C9I,KAAKgiC,eAAersC,OAAOmT,EAAO,IACjCpO,KAAKsF,OACP+G,EAAa4B,YAAY,WAAY,SAASw+B,GAE7C,GADApsC,QAAQ+I,IAAI,YACJ,GAALqjC,EACH,CAECnnC,KAAKgkC,SAAW,EAChBhkC,KAAKmiC,eAAiB,GACtBniC,KAAKonC,4BAA8B,GACnCpnC,KAAKqnC,6BAA+B,GACpC,IAAM,IAAI9yC,EAAI,EAAGA,EAAIyL,KAAKmgC,WAAWrW,aAAar1B,OAAQF,IACzDyL,KAAKqnC,6BAA6BtyC,KAAK,IAExCiL,KAAKsnC,0BAA4B,GACjCtnC,KAAKunC,yBAA2B,QACTluC,GAApB2G,KAAKkiC,eAEPliC,KAAKkiC,cAAcplB,MAAM,UAO3B,CACC,IAAI0qB,EAAQ3d,EAA0B4d,WAClCxC,EAAS,GACb,MAAM2B,EAAa,IAAI52B,QAA2Bw3B,EAAM,GAAG,YAAaxnC,KAAKunC,yBAAyBjf,IAAKtS,GAAMA,GAAIhW,KAAKonC,4BAA4B9e,IAAKtS,GAAMA,IACjKivB,EAAOlwC,KAAK6xC,GACZ,IAAM,IAAIryC,EAAI,EAAGA,EAAIyL,KAAKmgC,WAAWrW,aAAar1B,OAAQF,IAC1D,CACC,MAAMsyC,EAAe,IAAI72B,QAA+Bw3B,EAAMjzC,GAAG,cAAeyL,KAAKunC,yBAAyBjf,IAAKtS,GAAMA,GAAIhW,KAAKqnC,6BAA6B9yC,GAAG+zB,IAAKtS,GAAMA,IAC7KivB,EAAOlwC,KAAK8xC,GAGb,MAAMC,EAAW,IAAI92B,QAA2Bw3B,EAAM,GAAG,yBAA0BxnC,KAAKunC,yBAAyBjf,IAAKtS,GAAMA,GAAGhW,KAAKsnC,0BAA0Bhf,IAAKtS,GAAMA,IACzKivB,EAAOlwC,KAAK+xC,GACZ,MAAMvxB,EAAO,IAAIvF,OAAqB,OAAOqtB,KAAkB,EAAG4H,GAElEl+B,EAAaC,KAAK,YAAYuO,GAC9B,IAAImyB,OAAYruC,EAEhB,GADA2G,KAAKgiC,eAAejtC,KAAK,CAACwgB,KAAKA,EAAKgqB,MAAMmI,SACnBruC,GAApB2G,KAAKkiC,cACR,CACC,IAAI/sB,EAAOnV,KACXA,KAAKkiC,cAAcyF,gBAAkB,SAAUhsB,GAI9CxG,EAAKgtB,eAAeptC,KAAK4mB,GACzBxG,EAAK6sB,eAAe7sB,EAAK6sB,eAAevtC,OAAO,GAAG8qC,MAAQ,IAAI0H,KAAK9xB,EAAKgtB,eAAe,CAAC5qC,KAAM,gBAG/FyI,KAAKkiC,cAAc92B,QAKrBpL,KAAK+hC,UAAYoF,GAChBzsC,KAAKsF,OACP+G,EAAa4B,YAAY,UAAU,SAASG,GAK3C,IAAIq7B,EAHJnkC,KAAKiiC,OAASn5B,EACd9I,KAAKgkC,SAAS,EACdhkC,KAAKikC,MAAMC,gBAEX,IAAI0D,EAAe9wC,SAAS+P,cAAc,gBAC1C,GAAG7G,KAAKiiC,QAAQ,GAGf,GADAkC,EAAOnkC,KAAKikC,MAAMG,WAAYpkC,KAAKgiC,eAAel5B,GAAOyM,WACpBlc,GAAlC2G,KAAKgiC,eAAel5B,GAAOy2B,MAC9B,CACC,MAAMsI,EAAWx5B,IAAIC,gBAAgBtO,KAAKgiC,eAAel5B,GAAOy2B,OAEhEqI,EAAa/vC,IAAMgwC,EACnBD,EAAaE,MAAO,EACpBF,EAAaG,UAAU,KAEtBH,EAAah7B,cAOfu3B,EAAOnkC,KAAKikC,MAAMG,WAAYpkC,KAAKqkC,mBACnCuD,EAAaI,QAEd7D,EAAKv3B,QAKJlS,KAAKsF,OAMPA,KAAKioC,SAAY,IAAI9zB,KACrBnU,KAAKsgC,OAAS,IAAI/D,EAClBv8B,KAAKsgC,OAAO5I,iBAAiB,UAAYrhC,IACxC,IAAKkB,EAAMtD,GAAQ8hC,EAAOhjB,MAAM1c,EAAEpC,MAClC+L,KAAK6/B,GAAG74B,KAAKzP,EAAMtD,GAEnB,IAAIi0C,EAAU,IAAI/zB,KACdg0B,EAAWD,EAAUloC,KAAKioC,SAE9BE,GAAY,IAEZ,IAAIC,EAAUl5B,KAAKC,MAAMg5B,GAEtBC,GAAS,KAEXpoC,KAAKioC,SAAWC,EAChBloC,KAAK+jC,gBAIP/jC,KAAKsgC,OAAO5I,iBAAiB,QAAUrhC,IAGZ,UAAtBA,EAAEpC,KAAKooC,MAAMzwB,OAGhB5L,KAAKu/B,MAAMp0B,UAAY9U,EAAEpC,KAAKo0C,QAAQ,GACtCroC,KAAKu/B,MAAMuI,MAAO,EAClB9nC,KAAKkiC,cAAgB,IAAIjF,EAAoB5mC,EAAEpC,KAAKo0C,QAAQ,IAC5DroC,KAAKkiC,cAAcoG,SAAW,YAG9BtoC,KAAKu/B,MAAMwI,UAAU,KAAK/nC,KAAKu/B,MAAM3yB,WAGvC5M,KAAKsgC,OAAO5I,iBAAiB,QAAQ,SAAUrhC,GAC9C0E,QAAQ+I,IAAI,sBAAwBzN,EAAEpC,MAEtC8S,EAAaC,KAAK,OAAO3Q,EAAEpC,SAE5B+L,KAAK6/B,GAAGl3B,YAAY,QAAU1U,IAC7B+L,KAAKmgC,WAAW9U,SAASp3B,KAE1B+L,KAAK6/B,GAAGl3B,YAAY,YAAc1U,IACjC+L,KAAKmgC,WAAW5U,aAAat3B,KAE9B+L,KAAK6/B,GAAGl3B,YAAY,eAAiB1U,IACpC+L,KAAKmgC,WAAWxU,kBAAkB13B,KAEnC+L,KAAK6/B,GAAGl3B,YAAY,QAAU,SAAS1U,GACtC,IAAI,IAAIqyC,EAAK,EAAGA,EAAKtmC,KAAKy/B,OAAOhrC,OAAQ6xC,IACxC,IAAI,IAAI7wC,EAAE,EAAGA,EAAEuK,KAAKy/B,OAAO6G,GAAI7xC,OAAQgB,SACT4D,GAA1B2G,KAAKy/B,OAAO6G,GAAI7wC,GAAGywC,QACrBlmC,KAAKy/B,OAAO6G,GAAI7wC,GAAGywC,MAAMK,sBAAsBvmC,KAAKy/B,OAAO6G,GAAI7wC,GAAGqe,IAAM,GAG3E,IAAI,IAAI8J,EAAI,EAAGA,EAAI5d,KAAKy/B,OAAOhrC,OAAQmpB,IACvC,CACC,GAAGA,GAAG3pB,EAAKQ,OAAQ,SACnB,MAAMuhB,EAAI/hB,EAAK2pB,GACf5d,KAAK0/B,iBAAiB9hB,GAAK5H,EAC3B,IAAI,IAAIvgB,EAAE,EAAGA,EAAEuK,KAAKy/B,OAAO7hB,GAAGnpB,OAAQgB,SAET4D,GAAzB2G,KAAKy/B,OAAO7hB,GAAGnoB,GAAGywC,QAErBlmC,KAAKy/B,OAAO7hB,GAAGnoB,GAAGywC,MAAMK,sBAAsBvmC,KAAKy/B,OAAO7hB,GAAGnoB,GAAGqe,IAAM5E,KAAKvC,IAAI3M,KAAKy/B,OAAO7hB,GAAGnoB,GAAGywC,MAAMK,sBAAsBvmC,KAAKy/B,OAAO7hB,GAAGnoB,GAAGqe,IAAKkC,EAAIhW,KAAKy/B,OAAO7hB,GAAGnoB,GAAGixC,SAE3K1mC,KAAK2mC,eAAe/oB,EAAE5H,KAErBtb,KAAKsF,OAGRA,KAAK6/B,GAAGl3B,YAAY,OAAO,SAAU4/B,GAGpCxhC,EAAaC,KAAK,MAAOuhC,MAI1BxhC,EAAa4B,YAAY,YAAa,SAASoM,GAC9C/U,KAAKyqB,MAAMzY,IAAI+C,IACdra,KAAKsF,OACP+G,EAAa4B,YAAY,eAAgB,SAASoM,GACjD/U,KAAKyqB,MAAMoY,OAAO9tB,IACjBra,KAAKsF,OACP+G,EAAa4B,YAAY,YAAa,SAASoM,EAAKtc,GACnDuH,KAAKwoC,UAAUzzB,EAAKtc,IACnBiC,KAAKsF,OACP+G,EAAa4B,YAAY,eAAgB,SAASoM,EAAKtc,GACtDuH,KAAKyoC,aAAa1zB,EAAKtc,IACtBiC,KAAKsF,OACP+G,EAAa4B,YAAY,YAAa,SAASkG,GAC9C7O,KAAK1C,QAAQuR,EAAI+E,MAAM/E,GACtBnU,KAAKsF,OACP+G,EAAa4B,YAAY,eAAgB,SAASkG,UAC1C7O,KAAK1C,QAAQuR,EAAI+E,MACa,GAAlClf,OAAOymC,KAAKn7B,KAAK1C,SAAS7I,SAE5BuL,KAAKsiC,eAAiBtiC,KAAKqiC,cAC3BriC,KAAKyiC,mBAEL/nC,KAAKsF,OACP+G,EAAa4B,YAAY,cAAe,WACvC3I,KAAKsiC,eAAiBtiC,KAAKqiC,cAC3BriC,KAAKyiC,kBAEJ/nC,KAAKsF,OACP+G,EAAa4B,YAAY,oBAAqB,SAASiL,GAEtD5T,KAAKsiC,eAAiBtiC,KAAK1C,QAAQsW,GACnC5T,KAAKyiC,kBAOJ/nC,KAAKsF,OACP+G,EAAa4B,YAAY,oBAAqB,SAASzC,GACtDA,EAASlG,KAAKsiC,iBACb5nC,KAAKsF,OACP+G,EAAa4B,YAAY,kBAAmB,SAASzC,GACpDA,EAASlG,KAAKmgC,WAAW7V,aAAa,MACrC5vB,KAAKsF,OACP+G,EAAa4B,YAAY,YAAa,SAASzC,GAC9CA,OAAsB7M,GAAb2G,KAAKuc,SACb7hB,KAAKsF,OACP+G,EAAa4B,YAAY,WAAY,SAASzC,GAE7CA,EAAS,CAAClG,KAAK0+B,cAAc5pB,UAAiCzb,GAA3B2G,KAAK0+B,cAAcprB,UACrD5Y,KAAKsF,OAEAA,MA5oBD,GA+oBR,mBACC,IAAI0oC,EAAY1oC,KAAKq/B,4BACPhmC,GAAXqvC,IACHA,EAAY,WACZ,MAAM9gC,EAAS,CACdC,QAAS,CACT,eAAe,oBAEfC,KAAM,CACL,eAAkB9H,KAAKq/B,uBACvB,iBAAoBr/B,KAAKo/B,2BAG3B,UACO/3B,OAAIU,IAAI,iBAAiB,WAAYH,GAE3C,MAAM9O,GAENiC,QAAQ+I,IAAIhL,IAId6vC,UAEC3oC,KAAKs/B,SAASqJ,UAEfpG,YAECviC,KAAKyqB,MAAQ,IAAIza,QACjBhQ,KAAKyqB,MAAMme,WAAa,IAAI54B,OAAa,UAEzChQ,KAAKwgC,UAAY,IAAIxwB,OAAuB,SAAU,SACtDhQ,KAAKwgC,UAAU5vB,SAASC,IAAK,EAAG,GAAI,GAGpC,MAAMg4B,EAAe,IAAI74B,QACzB64B,EAAaj4B,SAASC,IAAI,EAAG,GAAI,GACjC7Q,KAAKyqB,MAAMzY,IAAI62B,GAEf7oC,KAAK4gC,kBAAoB,IAAI5wB,OAC7BhQ,KAAK6gC,aAAe,IAAI7wB,OACxBhQ,KAAKkqB,aAAe,IAAIla,OACxBhQ,KAAKmqB,YAAc,IAAIna,OACvBhQ,KAAKonC,4BAA8B,GACnCpnC,KAAKqnC,6BAA+B,GACpCrnC,KAAK0/B,iBAAmB,GACxB,IAAM,IAAInrC,EAAI,EAAGA,EAAI,GAAOA,IAC3ByL,KAAK0/B,iBAAiB3qC,KAAK,GAG5BiL,KAAKsnC,0BAA4B,GACjCtnC,KAAKunC,yBAA2B,GAChC,MAAMuB,EAAW,GACXC,EAAY,GACZC,EAAY,GACZC,EAAY,GACZC,EAAS,GACTC,EAAU,GACVC,EAAU,GACVC,EAAU,GACVC,EAAS,IAAIt5B,OAAa,EAAG,KAAO,MACpCu5B,EAAS,IAAIv5B,OAAc,EAAG,KAAO,MACrCw5B,EAAS,IAAIx5B,OAAc,KAAO,KAAO,GACzCy5B,EAAS,IAAIz5B,OAAc,EAAG,EAAK,MACzC,IAAM,IAAIzb,EAAI,EAAGA,EAAIyL,KAAKmgC,WAAWrW,aAAar1B,OAAQF,IACxDu0C,EAAS/zC,KAAM,EAAG,EAAG,GACrB+zC,EAAS/zC,KAAM,EAAG,EAAG,GACrBm0C,EAAOn0C,KAAMu0C,EAAOtvC,EAAGsvC,EAAOI,EAAGJ,EAAO1rB,GACxCsrB,EAAOn0C,KAAMw0C,EAAOvvC,EAAGuvC,EAAOG,EAAGH,EAAO3rB,GACxC5d,KAAKqnC,6BAA6BtyC,KAAK,IAEzC,IAAI,IAAIR,EAAI,EAAGA,EAAI,GAAIA,IAEtBw0C,EAAUh0C,KAAM,EAAG,EAAG,GACtBg0C,EAAUh0C,KAAM,EAAG,EAAG,GACtBo0C,EAAQp0C,KAAMu0C,EAAOtvC,EAAGsvC,EAAOI,EAAGJ,EAAO1rB,GACzCurB,EAAQp0C,KAAMw0C,EAAOvvC,EAAGuvC,EAAOG,EAAGH,EAAO3rB,GAE1C,IAAI,IAAIrpB,EAAI,EAAGA,EAAI,GAAWA,IAE7By0C,EAAUj0C,KAAM,EAAG,EAAG,GACtBi0C,EAAUj0C,KAAM,EAAG,EAAG,GACtBq0C,EAAQr0C,KAAMy0C,EAAOxvC,EAAGwvC,EAAOE,EAAGF,EAAO5rB,GACzCwrB,EAAQr0C,KAAMy0C,EAAOxvC,EAAGwvC,EAAOE,EAAGF,EAAO5rB,GAE1C,IAAI,IAAIrpB,EAAI,EAAGA,EAAI,GAAIA,IAEtB00C,EAAUl0C,KAAM,EAAG,EAAG,GACtBk0C,EAAUl0C,KAAM,EAAG,EAAG,GACtBs0C,EAAQt0C,KAAM00C,EAAOzvC,EAAGyvC,EAAOC,EAAGD,EAAO7rB,GACzCyrB,EAAQt0C,KAAM00C,EAAOzvC,EAAGyvC,EAAOC,EAAGD,EAAO7rB,GAG1C5d,KAAK4gC,kBAAkB/nC,aAAc,WAAY,IAAImX,OAA8B84B,EAAU,IAC7F9oC,KAAK4gC,kBAAkB/nC,aAAc,QAAS,IAAImX,OAA8Bk5B,EAAQ,IACxFlpC,KAAK6gC,aAAahoC,aAAc,WAAY,IAAImX,OAA8B+4B,EAAW,IACzF/oC,KAAK6gC,aAAahoC,aAAc,QAAS,IAAImX,OAA8Bm5B,EAAS,IACpFnpC,KAAKkqB,aAAarxB,aAAc,WAAY,IAAImX,OAA8Bg5B,EAAW,IACzFhpC,KAAKkqB,aAAarxB,aAAc,QAAS,IAAImX,OAA8Bo5B,EAAS,IACpFppC,KAAKmqB,YAAYtxB,aAAc,WAAY,IAAImX,OAA8Bi5B,EAAW,IACxFjpC,KAAKmqB,YAAYtxB,aAAc,QAAS,IAAImX,OAA8Bq5B,EAAS,IAEnF,MAAMM,EAAgB,IAAI35B,OAAyB,CAAE45B,cAAc,EAAMC,WAAW,EAAOC,YAAY,EAAOC,YAAY,EAAOC,aAAa,EAAOC,UAAW,IAChKjqC,KAAKugC,SAAW,IAAIvwB,OAAoBhQ,KAAK4gC,kBAAmB+I,GAChE3pC,KAAKyqB,MAAMzY,IAAKhS,KAAKugC,UACrBvgC,KAAK0jC,cAAgB,IAAI1zB,OAAoBhQ,KAAK6gC,aAAc8I,GAChE3pC,KAAKyqB,MAAMzY,IAAKhS,KAAK0jC,eACrB1jC,KAAK2jC,oBAAsB,IAAI3zB,OAAoBhQ,KAAKkqB,aAAcyf,GACtE3pC,KAAKyqB,MAAMzY,IAAKhS,KAAK2jC,qBACrB3jC,KAAK4jC,WAAa,IAAI5zB,OAAoBhQ,KAAKmqB,YAAawf,GAC5D3pC,KAAKyqB,MAAMzY,IAAKhS,KAAK4jC,YAIrB5jC,KAAKugC,SAASkD,SAAU,EACxBzjC,KAAK0jC,cAAcD,SAAU,EAC7BzjC,KAAK2jC,oBAAoBF,SAAU,EACnCzjC,KAAK4jC,WAAWH,SAAU,EAC1BzjC,KAAK8gC,cAAgB,IAAI9wB,OACzBhQ,KAAK8gC,cAAc9uB,IAAKhS,KAAKmgC,WAAWrW,aAAa,IACrD9pB,KAAKyqB,MAAMzY,IAAKhS,KAAK8gC,eAGrB9gC,KAAKygC,SAAW,IAAIzwB,OAAwB,UAE5ChQ,KAAKygC,SAAS7vB,SAASC,IAAK,EAAG,EAAG,GAClC7Q,KAAKygC,SAAS7oC,OAASixC,EACvB7oC,KAAKygC,SAASyJ,YAAa,EAU3BlqC,KAAKygC,SAASn3B,OAAO6gC,QAAQ9qC,MAAQ,IACrCW,KAAKygC,SAASn3B,OAAO6gC,QAAQ7qC,OAAS,IAGtCU,KAAKyqB,MAAMzY,IAAKhS,KAAKygC,UA2BrBzgC,KAAKygC,SAASn3B,OAAO6G,OAAOvL,IAAM,EAClC5E,KAAKygC,SAASn3B,OAAO6G,OAAO/L,QAAU,EACtCpE,KAAKygC,SAASn3B,OAAO6G,OAAOxL,MAAQ,EACpC3E,KAAKygC,SAASn3B,OAAO6G,OAAOi6B,MAAQ,EACpCpqC,KAAKygC,SAASn3B,OAAO6G,OAAOM,KAAO,GACnCzQ,KAAKygC,SAASn3B,OAAO6G,OAAOO,IAAM,GAClC1Q,KAAKygC,SAASn3B,OAAO+gC,MAAQ,KAE7BrqC,KAAK0gC,OAAS,IAAI1wB,OAAY,IAAIA,QAAqB,IAAK,KAAO,IAAIA,QAAsB,CAAEnL,QAAS,MACxG7E,KAAK0gC,OAAO5uB,SAASkE,GAAM9G,KAAKo7B,GAAK,EACrCtqC,KAAK0gC,OAAO6J,eAAgB,EAC5BvqC,KAAKyqB,MAAMzY,IAAKhS,KAAK0gC,QAErB,MAAM8J,EAAO,IAAIx6B,OAAkB,IAAK,GAAI,MAAU,OACtDw6B,EAAKC,SAAS5lC,QAAU,EACxB2lC,EAAKC,SAAST,aAAc,EAE5B,MAAMU,EAAW,IAAI16B,OAAmB,EAAG,EAAG,GACxCy6B,EAAW,IAAIz6B,OAAyB,CAACzT,MAAO,QACtDkuC,EAASZ,WAAY,EACrB,MAAMc,EAAY,IAAI36B,OAAyB,CAACzT,MAAO,WACvDouC,EAAUd,WAAY,EACtB,MAAMe,EAAY,IAAI56B,OAAY06B,EAAUD,GACtCI,EAAa,IAAI76B,OAAY06B,EAAUD,GACvCK,EAAY,IAAI96B,OAAY06B,EAAUD,GACtCM,EAAa,IAAI/6B,OAAY06B,EAAUD,GACvCO,EAAc,IAAIh7B,OAAY06B,EAAUD,GACxCQ,EAAe,IAAIj7B,OAAY06B,EAAUC,GAE/CE,EAAWj6B,SAASC,KAAK,GAAG,EAAE,GAC9B+5B,EAAUh6B,SAASC,IAAI,GAAG,EAAE,GAC5Bk6B,EAAWn6B,SAASC,KAAK,GAAG,EAAE,GAC9Bi6B,EAAUl6B,SAASC,IAAI,GAAG,EAAE,GAC5Bm6B,EAAYp6B,SAASC,IAAI,EAAE,EAAE,GAC7Bo6B,EAAar6B,SAASC,IAAI,EAAE,EAAE,GAC9B+5B,EAAUM,YAAa,IACvBL,EAAWK,YAAa,IACxBJ,EAAUI,YAAa,IACvBH,EAAWG,YAAa,IACxBF,EAAYE,YAAc,IAC1BD,EAAaC,YAAc,IAO3BlrC,KAAKmgC,WAAWgL,YAAcP,EAC9B5qC,KAAKmgC,WAAWiL,YAAcP,EAC9B7qC,KAAKmgC,WAAWkL,YAAcP,EAC9B9qC,KAAKmgC,WAAWmL,YAAcP,EAC9B/qC,KAAKmgC,WAAWoL,YAAcP,EAC9BhrC,KAAKmgC,WAAWqL,aAAeP,EAGhC76B,aAIC,MAAMD,EAAS,IAAIH,QAAyB,GAAI/U,OAAOsV,WAAatV,OAAOuV,YAAa,EAAG,IAM3F,OALAL,EAAOM,KAAO,GACdN,EAAOO,IAAM,IACbP,EAAOQ,eAAe,IACtBR,EAAOS,SAASC,IAAK,EAAG,EAAG,GAC3BV,EAAOW,OAAQ,EAAG,EAAG,GACdX,EAERs7B,YAAY/zC,GAEX,IAAKsI,KAAK0rC,OAAOC,UACP,OAEV,GAA8B,MAA3B3rC,KAAK0rC,OAAOhN,cAAqB,OACpChnC,EAAMmW,iBACN,IAAI5H,EAAQjG,KAAK0rC,OAAOhN,cACpBz4B,EAAMqN,SACTrN,EAASjG,KAAK0rC,OAAOhN,cAAcjU,OAEpC,IAAImhB,EAASl0C,EAAMm0C,QAAU7rC,KAAK0rC,OAAOnK,OAIzC,GAFAvhC,KAAK0rC,OAAOnK,OAAS7pC,EAAMm0C,QAC3B7rC,KAAK0rC,OAAOlK,OAAS9pC,EAAMo0C,QACA,UAAxB9rC,KAAK0rC,OAAO7J,WAEd57B,EAAM6L,SAAS+W,GAAG+iB,EAAS,IAC3B5rC,KAAK0rC,OAAO9J,OAAO,GAAG9vB,SAASgX,EAAI7iB,EAAM6L,SAAS+W,OAE9C,GAA2B,aAAxB7oB,KAAK0rC,OAAO7J,WACpB,CACC,MAAMkK,EAAQ,CACb/1B,EAAIte,EAAMm0C,QAAU7rC,KAAKyH,YAAe,EAAI,EAC5CohB,GAAKnxB,EAAMo0C,QAAU9rC,KAAK6kC,aAAgB,EAAI,GAG/C7kC,KAAK0rC,OAAO/J,UAAUqK,cAAcD,EAAO/rC,KAAK0rC,OAAOpJ,gBAEvD,MAAM2J,EAAYjsC,KAAK0rC,OAAO/J,UAAUuK,gBAAgBlsC,KAAK0rC,OAAOS,qBAAqB,GAEzF,GAAGF,EAAUx3C,OAAS,EACtB,CAECwR,EAAM2K,SAASK,KAAKg7B,EAAU,GAAG7Y,OACjC,IAAI,IAAI7+B,EAAE,EAAGA,EAAEyL,KAAK0rC,OAAO9J,OAAOntC,OAAQF,IACzCyL,KAAK0rC,OAAO9J,OAAOrtC,GAAGqc,SAASK,KAAKg7B,EAAU,GAAG7Y,QAIpDntB,EAAMmmC,eAIPC,YAAY3oC,GACLA,EAAImK,iBAGJ7N,KAAK0rC,OAAOnK,OAAS79B,EAAImoC,QACzB7rC,KAAK0rC,OAAOlK,OAAS99B,EAAIooC,QAG/B,MAAMC,EAAQ,CACb/1B,EAAItS,EAAImoC,QAAU7rC,KAAKyH,YAAe,EAAI,EAC1CohB,GAAKnlB,EAAIooC,QAAU9rC,KAAK6kC,aAAgB,EAAI,GAE7C7kC,KAAK0rC,OAAO/J,UAAUqK,cAAcD,EAAO/rC,KAAK0rC,OAAOpJ,gBACvD,MAAMgK,EAAatsC,KAAK0rC,OAAO/J,UAAU4K,iBAAiBvsC,KAAK0rC,OAAO9J,QAAQ,GAC9E,GAAI0K,EAAW73C,OAAS,EACxB,CACC,IAAI8zB,GAAQ,EACZ,IAAI,IAAIh0B,EAAE,EAAGA,EAAE+3C,EAAW73C,OAAQF,IAEjC,GAAG+3C,EAAW/3C,GAAGqG,OAAO+vB,QAAQ3qB,KAAK0rC,OAAOjhB,MAC5C,CACClC,GAAQ,EACR,MAICA,IAEFvoB,KAAK0rC,OAAOC,WAAY,EACxB3rC,KAAK0rC,OAAO7oC,SAAS6K,SAAU,IAQ/B8+B,UAAU9oC,GACNA,EAAImK,iBAEJ7N,KAAK0rC,OAAOC,WAAY,EAC9B3rC,KAAK0rC,OAAO7oC,SAAS6K,SAAU,EAGhC80B,eAECxiC,KAAK6C,SAAW,IAAI4pC,OAAezsC,KAAKsiC,eAAgBtiC,KAAKs/B,SAASqF,YACtE3kC,KAAK6C,SAASjL,OAAOiZ,IAAK,EAAG,EAAG,GAEhC7Q,KAAKs/B,SAASqF,WAAW+G,OAAS1rC,KAClCA,KAAKs/B,SAASqF,WAAWjN,iBAAiB,YAAa13B,KAAKyrC,aAAa,GACzEzrC,KAAKs/B,SAASqF,WAAWjN,iBAAiB,YAAa13B,KAAKqsC,aAAa,GACzErsC,KAAKs/B,SAASqF,WAAWjN,iBAAiB,UAAW13B,KAAKwsC,WAAW,GAErE,MAAM9B,EAAW,IAAI16B,OAAsB,GAAK,IAE1Cy6B,EAAW,IAAIz6B,OAAyB,CAAEzT,MAAO,SAAUmwC,KAAM18B,OAAiB65B,WAAW,EAAOC,YAAY,EAAOC,YAAY,EAAOC,aAAa,EAAMnlC,QAAQ,KAC3K7E,KAAKyhC,eAAiB,IAAIzxB,OAAY06B,EAAUD,GAChDzqC,KAAKyhC,eAAe7wB,SAASC,IAAI,EAAE,EAAE,GACrC7Q,KAAKyhC,eAAe3vB,SAASjB,KAAK,OAAO,EAAE,GAE3C,MAAM87B,EAAiB,IAAI38B,QAAqB,GAAK,IAC/C48B,EAAiB,IAAI58B,OAAyB,CAACzT,MAAO,MAAUmwC,KAAK18B,OAAiB65B,WAAW,EAAOC,YAAY,EAAOC,YAAY,EAAOC,aAAa,EAAMnlC,QAAQ,KAC/K7E,KAAK0hC,kBAAqB,IAAI1xB,OAAY28B,EAAgBC,GAC1D5sC,KAAK0hC,kBAAkB9wB,SAASC,IAAI,EAAE,EAAE,GACxC7Q,KAAK0hC,kBAAkB5vB,SAASjB,KAAK,OAAO,EAAE,GAI9C7Q,KAAK4hC,OAAO7sC,KAAKiL,KAAKyhC,gBACtBzhC,KAAK4hC,OAAO7sC,KAAKiL,KAAK0hC,mBAEtB1hC,KAAKmsC,oBAAsB,IAAIn8B,OAAY,IAAIA,QAAqB,IAAK,KAAO,IAAIA,QAAsB,CAAEnL,QAAS,KACrH7E,KAAKmsC,oBAAoBr6B,SAASkE,GAAM9G,KAAKo7B,GAAK,EAClDtqC,KAAKyqB,MAAMzY,IAAKhS,KAAKmsC,qBAgFtB/J,eAECpiC,KAAKs/B,SAAW,IAAItvB,QAAoB,CAAC68B,WAAW,EAAMC,OAAO,EAAMC,uBAAuB,IAC9F/sC,KAAKs/B,SAASqF,WAAWxgC,MAAM6oC,QAAU,2DACzChtC,KAAKs/B,SAAS2N,cAAchyC,OAAOiyC,kBACnCltC,KAAKs/B,SAAS6N,UAAUz/B,SAAU,EAElC1N,KAAKs/B,SAAS6N,UAAU51C,KAAOyY,QAC/BhQ,KAAKs/B,SAAS8N,eAAiBp9B,QAI/BhQ,KAAKqH,IACL,CACCgmC,oBAAqB,EACrBC,0BAA2B,GAC3BC,gBAAiB,GAMnBzJ,YAkBC,GAhBI9jC,KAAKwK,YACRxK,KAAKwK,UAAY1T,SAASoN,eAAe,WAE1ClE,KAAKwK,UAAW1T,SAASoN,eAAe,UAExClE,KAAKy+B,MAAQ,CACXp/B,MAAQW,KAAKwK,UAAU/C,YACvBnI,OAASU,KAAKwK,UAAUq6B,cAE1B7kC,KAAKs/B,SAASkF,QAAQxkC,KAAKy+B,MAAMp/B,MAAOW,KAAKy+B,MAAMn/B,QAOhDU,KAAKwK,UACR,CACCxK,KAAKwK,UAAUpS,YAAY4H,KAAKs/B,SAASqF,YAEzC,MAAM6I,EAAiB,IAAIC,eAAgBxkB,IAC1C,IAAK,MAAMykB,KAASzkB,EAGnBluB,QAAQ+I,IAAI4pC,EAAMC,YAAYtuC,MAAMquC,EAAMC,YAAYruC,QACtDU,KAAKsiC,eAAemC,OAASiJ,EAAMC,YAAYtuC,MAAQquC,EAAMC,YAAYruC,OACzEU,KAAKsiC,eAAevxB,yBAEpB/Q,KAAKs/B,SAASkF,QAAQkJ,EAAMC,YAAYtuC,MAAOquC,EAAMC,YAAYruC,UAGnEvE,QAAQ+I,IAAI,UAAUhN,SAASoN,eAAe,WAC9CspC,EAAeI,QAAQ92C,SAASoN,eAAe,WAGhDlE,KAAKu/B,MAAQzoC,SAAS+P,cAAc,gBAKrC47B,sBAEgBppC,GAAZ2G,KAAKy+B,OAOL1G,KAGF/3B,KAAKy+B,MAAMp/B,MAAQkd,OAAOld,MAE1BW,KAAKy+B,MAAMn/B,OAASid,OAAOjd,SAI3BU,KAAKy+B,MAAMp/B,MAAQpE,OAAOsV,WAC1BvQ,KAAKy+B,MAAMn/B,OAASrE,OAAOuV,aAE5BzV,QAAQ+I,IAAI,SAAS9D,KAAKy+B,MAAMp/B,MAAOW,KAAKy+B,MAAMn/B,OAAQrE,OAAOsV,WAAWtV,OAAOuV,aAEnFxQ,KAAKsiC,eAAemC,OAASxpC,OAAOsV,WAAWtV,OAAOuV,YACtDxQ,KAAKsiC,eAAevxB,yBAEpB/Q,KAAKs/B,SAASkF,QAAQvpC,OAAOsV,WAAWtV,OAAOuV,cAtB9CzV,QAAQ+I,IAAI,kBA+Bd+pC,sBAqBArF,UAAU5tC,EAAQnC,QACcY,IAA5B2G,KAAK8hC,QAAQlnC,EAAOgZ,QACtB5T,KAAK8hC,QAAQlnC,EAAOgZ,MAAQ,IAC7B5T,KAAK8hC,QAAQlnC,EAAOgZ,MAAM7e,KAAK0D,GAEhCgwC,aAAa7tC,EAAQnC,GACpB,QAAqCY,IAAhC2G,KAAK8hC,QAASlnC,EAAOgZ,MAA1B,CACA,IAAI9K,EAAQ9I,KAAK8hC,QAASlnC,EAAOgZ,MAAO9F,QAASrV,IAChC,IAAZqQ,GACJ9I,KAAK8hC,QAASlnC,EAAOgZ,MAAOje,OAAQmT,EAAO,IAG7CwH,SAGC,IAAItQ,KAAM,OAEVkd,sBAAsBld,KAAKsQ,OAAO5V,KAAKsF,OAEvC,MAAMqQ,EAAQrQ,KAAK2/B,MAAMmO,WAEzB,IAAI,MAAMrzC,KAAOuF,KAAK8hC,QACrB,IAAI,MAAMrpC,KAAUuH,KAAK8hC,QAAQrnC,GAChChC,EAAO4X,GAETrQ,KAAKkhC,UAAU7wB,EACfrQ,KAAKmhC,aACFnhC,KAAKkhC,SAAS,IAGhBn6B,EAAaC,KAAK,MAAMkI,KAAKC,MAAM,GAAKnP,KAAKkhC,SAASlhC,KAAKmhC,cAC3DnhC,KAAKkhC,SAAW,EAChBlhC,KAAKmhC,WAAW,QAED9nC,GAAb2G,KAAKuc,SAEPvc,KAAKwP,MAAMa,EAAMrQ,KAAKohC,YAAYlyB,KAAKvC,IAAI,EAAE3M,KAAKohC,aAC/CphC,KAAKwP,KAAMxP,KAAKqhC,cAElBrhC,KAAKwP,KAAO,EAGZxP,KAAKuc,OAAOkuB,SAASniB,IAAMtoB,KAAK3C,OAAO2C,KAAKihC,UAC5CjhC,KAAKuc,OAAOkuB,SAASsD,aAAc,EACnC/tC,KAAKihC,WACFjhC,KAAKihC,UAAWjhC,KAAK3C,OAAO5I,SAC9BuL,KAAKihC,SAAW,KAMdjhC,KAAKikC,OACTjkC,KAAKikC,MAAM3zB,OAAOD,GAEdrQ,KAAKguC,YACThuC,KAAKguC,WAAW19B,OAAOD,GAEnBrQ,KAAKiuC,cACTjuC,KAAKiuC,aAAa39B,OAAOD,GACvBrQ,KAAK6C,WAEJ7C,KAAKsiC,iBAAmBtiC,KAAKqiC,cAEX,IAAjBriC,KAAK6hC,aAEP7hC,KAAK6C,SAAS6K,SAAU,EACxB1N,KAAK6C,SAASyN,UAIftQ,KAAK6C,SAAS6K,SAAU,GAK1B1N,KAAKmgC,WAAW7vB,SAChB,IAAI2Z,EAASjqB,KAAKmgC,WAAWlW,OACzBC,EAAelqB,KAAKmgC,WAAWjW,aAC/BC,EAAcnqB,KAAKmgC,WAAWhW,YAclC,GAZKnqB,KAAK0+B,eAE+B,oBAA9B1+B,KAAK0+B,cAAcpuB,QAE5BtQ,KAAK0+B,cAAcpuB,OAAc,EAAND,GAM7BrQ,KAAKs/B,SAASx/B,OAAOE,KAAKyqB,MAAOzqB,KAAKsiC,gBAEnCtiC,KAAKmgC,WACR,CACC,IAAI+E,EAAKllC,KAAKmgC,WAEd,GAAmB,GAAhBngC,KAAK+hC,UACR,CAEC,IAAI3M,EAAK,IAAIplB,QACbk1B,EAAGpb,aAAa,GAAG3X,iBAAiBijB,GACpCp1B,KAAKonC,4BAA4BryC,KAAKqgC,EAAIpf,EAAEof,EAAIvM,EAAEuM,EAAItM,GACtD9oB,KAAKunC,yBAAyBxyC,KAAKiL,KAAKgkC,UACxChkC,KAAKsnC,0BAA4BtnC,KAAKsnC,0BAA0B3N,OAAO35B,KAAK0/B,iBAAiBpX,IAAKtS,GAAMA,IACxG,IAAM,IAAIzhB,EAAI,EAAGA,EAAI2wC,EAAG5a,aAAa71B,OAAQF,IAE5CyL,KAAKqnC,6BAA6B9yC,GAAGQ,KAAKmwC,EAAGpb,aAAav1B,GAAG8xC,WAAWrwB,EAAEkvB,EAAGpb,aAAav1B,GAAG8xC,WAAWxd,EAAEqc,EAAGpb,aAAav1B,GAAG8xC,WAAWvd,EAAEoc,EAAGpb,aAAav1B,GAAG8xC,WAAWtd,GAGzK/oB,KAAKgkC,UAAU3zB,EAIhB,GAAGrQ,KAAKogC,WAEJpgC,KAAKsgC,SACHtgC,KAAKsgC,OAAOxG,GACf,CACC95B,KAAKmgC,WAAWliB,MAAM3e,OAAS,EAC/B,IAAI6V,EAAOnV,KACXA,KAAKogC,UAAU+F,UAAU,SAAWzd,GAKnC,GAFAwc,EAAGpb,aAAapB,EAAM0d,KAAKx1B,SAASC,IAAI6X,EAAM9X,SAASoF,EAAE0S,EAAM9X,SAASiY,EAAEH,EAAM9X,SAASkY,GACzFoc,EAAGpb,aAAapB,EAAM0d,KAAKC,WAAWx1B,IAAI6X,EAAM2d,WAAWrwB,EAAE0S,EAAM2d,WAAWxd,EAAEH,EAAM2d,WAAWvd,EAAEJ,EAAM2d,WAAWtd,GACtG,GAAXL,EAAM0d,KAAUjxB,EAAKsqB,OAAOhrC,OAAO,EACtC,CACC,IAAI,IAAI6xC,EAAK,EAAGA,EAAK5d,EAAM6d,sBAAsB9xC,OAAQ6xC,IAExD,IAAI,IAAI7wC,EAAE,EAAGA,GAAiB,QAAhBy4C,EAAC/4B,EAAKsqB,OAAO6G,UAAG,IAAA4H,OAAA,EAAfA,EAAiBz5C,QAAQgB,IACxC,KAAAy4C,OAC8B70C,GAA1B8b,EAAKsqB,OAAO6G,GAAI7wC,GAAGywC,QACrB/wB,EAAKsqB,OAAO6G,GAAI7wC,GAAGywC,MAAMK,sBAAsBpxB,EAAKsqB,OAAO6G,GAAI7wC,GAAGqe,IAAM,GAI3E,IAAI,IAAI8J,EAAI,EAAGA,EAAI8K,EAAM6d,sBAAsB9xC,OAAQmpB,IACvD,CACC,IAAI,IAAInoB,EAAE,EAAGA,GAAgB,QAAf04C,EAACh5B,EAAKsqB,OAAO7hB,UAAE,IAAAuwB,OAAA,EAAdA,EAAgB15C,QAAQgB,IACvC,KAAA04C,OAC6B90C,GAAzB8b,EAAKsqB,OAAO7hB,GAAGnoB,GAAGywC,QACrB/wB,EAAKsqB,OAAO7hB,GAAGnoB,GAAGywC,MAAMK,sBAAsBpxB,EAAKsqB,OAAO7hB,GAAGnoB,GAAGqe,IAAM5E,KAAKvC,IAAIwI,EAAKsqB,OAAO7hB,GAAGnoB,GAAGywC,MAAMK,sBAAsBpxB,EAAKsqB,OAAO7hB,GAAGnoB,GAAGqe,IAAI4U,EAAM6d,sBAAsB3oB,GAAGzI,EAAKsqB,OAAO7hB,GAAGnoB,GAAGixC,SAErMvxB,EAAKwxB,eAAe/oB,EAAE8K,EAAM6d,sBAAsB3oB,SAWzD,GAAG5d,KAAKugC,SAASkD,SAAWzjC,KAAK0jC,cAAcD,QAC/C,CAeC,GAdGzjC,KAAKmgC,WAAWliB,MAAM3e,OAAO,GAE/BU,KAAKugC,SAASkD,SAAU,EACxBzjC,KAAK0jC,cAAcD,SAAU,EAC7BzjC,KAAK4jC,WAAWH,SAAU,EAC1BzjC,KAAK2jC,oBAAoBF,SAAU,IAInCzjC,KAAKugC,SAASkD,SAAU,EACxBzjC,KAAK0jC,cAAcD,SAAU,EAC7BzjC,KAAK4jC,WAAWH,SAAU,EAC1BzjC,KAAK2jC,oBAAoBF,SAAU,GAEjCzjC,KAAK4gC,kBACR,CACC,MAAMhwB,EAAW5Q,KAAK4gC,kBAAkB1pC,aAAc,YACtD,IAAM,IAAI3C,EAAI,EAAGkB,EAAI,EAAGlB,EAAI2wC,EAAGpb,aAAar1B,OAAQF,IAAO,CAC1D,MAAM2sB,EAAOgkB,EAAGpb,aAAcv1B,GAC9B,IAAI6gC,EAAK,IAAIplB,QACbkR,EAAK/O,iBAAiBijB,GAEtBA,EAAIhB,aAAap0B,KAAK8gC,cAAc9M,YAAYpiB,QAAQkZ,UACxDla,EAASw9B,OAAQ34C,EAAG2/B,EAAIpf,EAAGof,EAAIvM,EAAGuM,EAAItM,GACtC5H,EAAKyJ,OAAOxY,iBAAiBijB,GAE7BA,EAAIhB,aAAap0B,KAAK8gC,cAAc9M,YAAYpiB,QAAQkZ,UACxDla,EAASw9B,OAAQ34C,EAAI,EAAG2/B,EAAIpf,EAAGof,EAAIvM,EAAGuM,EAAItM,GAC1CrzB,GAAK,EAENuK,KAAK4gC,kBAAkB1pC,aAAc,YAAa62C,aAAc,EAEjE,GAAG/tC,KAAK6gC,aACR,CACC,MAAMjwB,EAAW5Q,KAAK6gC,aAAa3pC,aAAc,YACjD,IAAM,IAAI3C,EAAI,EAAGA,EAAI01B,EAAOx1B,OAAQF,IACpC,CACC,IAAI6gC,EAAMnL,EAAO11B,GACjBqc,EAASw9B,OAAQ75C,EAAG6gC,EAAIpf,EAAGof,EAAIvM,EAAGuM,EAAItM,GAEvC9oB,KAAK6gC,aAAa3pC,aAAc,YAAa62C,aAAc,EAE5D,GAAG/tC,KAAKkqB,aACR,CACC,MAAMtZ,EAAW5Q,KAAKkqB,aAAahzB,aAAc,YACjD,IAAM,IAAI3C,EAAI,EAAGA,EAAI21B,EAAaz1B,OAAQF,IAC1C,CACC,IAAI6gC,EAAMlL,EAAa31B,GACvBqc,EAASw9B,OAAQ75C,EAAG6gC,EAAIpf,EAAGof,EAAIvM,EAAGuM,EAAItM,GAEvC9oB,KAAKkqB,aAAahzB,aAAc,YAAa62C,aAAc,EAE5D,GAAG/tC,KAAKmqB,YACR,CACC,MAAMvZ,EAAW5Q,KAAKmqB,YAAYjzB,aAAc,YAChD,IAAM,IAAI3C,EAAI,EAAGA,EAAI41B,EAAY11B,OAAQF,IACzC,CACC,IAAI6gC,EAAMjL,EAAY51B,GACtBqc,EAASw9B,OAAQ75C,EAAG6gC,EAAIpf,EAAGof,EAAIvM,EAAGuM,EAAItM,GAEvC9oB,KAAKmqB,YAAYjzB,aAAc,YAAa62C,aAAc,KAS9DvK,YAAYj5B,GAERvK,KAAKquC,QAEPtzC,QAAQ+I,IAAI,iBAAiByG,GAC7BvK,KAAKquC,MAAM1J,WAAW2J,QAAQ/jC,GAIhC,wBAAwBnR,EAAMypC,GAG7B,GAAGA,EACH,CACC,IAAI,IAAItuC,EAAE,EAAGA,EAAEyL,KAAKk/B,wBAAwBzqC,OAAQF,IACnDyL,KAAKyqB,MAAMoY,OAAQ7iC,KAAKk/B,wBAAwB3qC,IACjDyL,KAAKyqB,MAAMoY,OAAO7iC,KAAK0gC,QACvB1gC,KAAKk/B,wBAA0B,GAC/Bl/B,KAAKm/B,4BAA8B,GAEpCn/B,KAAKm/B,4BAA4BpqC,KAAKqE,GACtC,IAAIiR,EAAS,IAAIkkC,OACjB,MAAMC,QAAmBC,OAAqBr1C,GAC9C,IAGImjB,EAHA3hB,QAAeyP,EAAOqkC,UAAWF,GACjCvoC,EAAQrL,EAAO6vB,MAGnBxkB,EAAMkgC,UAAU,SAAWzd,GAE1B,GAAKA,EAAMimB,OACX,CACC,GAAiB,WAAdjmB,EAAMtvB,KACT,CACCmjB,EAASmM,EACT,MAAMlvB,EAAI,IAAIwW,OAAyB,CACtCsY,IAAMI,EAAM+hB,SAASniB,MAKtBI,EAAM+hB,SAAWjxC,EAGlBkvB,EAAMwhB,YAAa,EACnBxhB,EAAM6hB,eAAgB,WAGblxC,GAARkjB,IACFvc,KAAKuc,OAASA,GACfxhB,QAAQ+I,IAAI,UAAU9D,KAAKuc,QAC3Bvc,KAAKyqB,MAAMzY,IAAK/L,GAChBjG,KAAKk/B,wBAAwBnqC,KAAKkR,GAClCA,EAAMskC,eAAgB,EACtBvqC,KAAKwP,KAAO,EAIb,wBAAwBpW,GAGvB4G,KAAK++B,4BAA8B3lC,EACnC,MAAMgV,QAAkBqgC,OAAqB,4BAE7CzuC,KAAKyqB,MAAMoY,OAAQ7iC,KAAK4uC,wBACxB5uC,KAAK4uC,uBAAyB,KAE9B,IAAIvkC,EAAS,IAAIkkC,OACb3zC,QAAeyP,EAAOqkC,UAAUtgC,GAEhCnI,EAAQrL,EAAO6vB,MACnBxkB,EAAMkgC,UAAU,SAAWzd,GAErBA,EAAMimB,SAGVjmB,EAAMwhB,YAAa,EACnBxhB,EAAM6hB,eAAgB,MAIxBvqC,KAAKyqB,MAAMzY,IAAK/L,GAChBjG,KAAK4uC,uBAAyB3oC,EAC9BjG,KAAK4uC,uBAAuBrE,eAAgB,EAC5CvqC,KAAKwP,KAAO,EAEZxP,KAAK6uC,cAAcj0C,GAIpBi0C,cAAcj0C,GAEb,MAAMmsC,EAAansC,EAAOmsC,WAC1B/mC,KAAK6+B,sBAAwBkI,EAAW,GACxC/mC,KAAKguC,WAAa,IAAIh+B,OAAqBpV,EAAO6vB,OAClD,IAAI0Z,EAAOnkC,KAAKguC,WAAW5J,WAAY2C,EAAW,IAClD5C,EAAKv3B,OAEN,sBAAuBo6B,EAAK5tC,EAAM3C,GAEjC,MAAMq4C,EAAW,IAAIC,OACfC,EAAU,CACfC,QAAQ,EACRlI,WAAY/mC,KAAK0+B,cAAcqI,WAC/BmI,yBAAyB,GAE1B,IAAIjpC,EAAQjG,KAAK0+B,mBACarlC,GAA3B2G,KAAK0+B,cAAcprB,SAGrBrN,EAAQjG,KAAK0+B,cAAcjU,MAE3BxkB,EAAMkgC,UAAU,SAAWzd,GAE1B,GAAKA,EAAMimB,OAKV,GAHAjmB,EAAM6hB,eAAgB,EACtB7hB,EAAMymB,eAAe,OAEK91C,GAAvBqvB,EAAM+hB,SAASh2C,QAEjB,QAA2C4E,GAAxCqvB,EAAM+hB,SAAS2E,SAASC,eAC3B,CACC,MAAM71C,EAAI,IAAIwW,OAA4B,CAEzCzT,MAAOmsB,EAAM+hB,SAASluC,MACtB+rB,IAAMI,EAAM+hB,SAAS6E,SAAShnB,IAAInuB,MAClCo1C,UAAa7mB,EAAM+hB,SAAS8E,UAC5B7C,KAAO18B,SAGR0Y,EAAM+hB,SAAWjxC,QAIlB,IAAI,IAAIjF,EAAE,EAAGA,EAAEm0B,EAAM+hB,SAASh2C,OAAQF,IAErC,QAA8C8E,GAA3CqvB,EAAM+hB,SAASl2C,GAAG66C,SAASC,eAC9B,CACC,MAAM71C,EAAI,IAAIwW,OAA4B,CAEzCzT,MAAOmsB,EAAM+hB,SAASl2C,GAAGgI,MACzB+rB,IAAMI,EAAM+hB,SAASl2C,GAAG+6C,SAAShnB,IAAInuB,MACrCo1C,UAAa7mB,EAAM+hB,SAASl2C,GAAGg7C,UAC/B7C,KAAO18B,SAGR0Y,EAAM+hB,SAASl2C,GAAKiF,OAS1Bs1C,EAAS/7B,MAAM9M,GAAOmU,eAAgB9kB,GAErC,GAAKA,aAAkBk6C,YAAc,CAUpC,MAAMC,EAAiB,GACvBA,EAAe,iBAAmB,IAAItoC,WAAW7R,GAEjDm6C,EAAe,aAAe,IAAItoC,iBAAiB6/B,EAAI0I,eACvD,MAAMC,EAASC,eAASH,EAAgB,CAAEI,MAAO,IACjDC,oBAAO,IAAI7I,KAAK,CAAC0I,EAAOzoC,SAAU9N,EAAK,YAGjC,CACN2B,QAAQ+I,IAAIxO,GACZ,MAAMy6C,EAAan7B,KAAKC,UAAUvf,GAClCyF,QAAQ+I,IAAIisC,GAIZ,MAAMp0B,EAAO,IAAIsrB,KAAK,CAAC8I,GAAa,CAAEx4C,KAAM,qBAC5Cu4C,oBAAOn0B,EAAM,kBACbm0B,oBAAO9I,EAAK,aAGbjsC,QAAQ+I,IAAI,sBACZrN,OAGD,SAAUqC,GACTiC,QAAQ+I,IAAIhL,GACZrC,MAEDu4C,GAED,oBAAoB51C,EAAM42C,GAEzB,IAAI5hC,QAAkBqgC,OAAqBr1C,EAAM,eAAe,GAC5D62C,QAAsBxB,OAAqBuB,EAAM,YAElDhwC,KAAK0+B,gBAEP1+B,KAAKyqB,MAAMoY,OAAQ7iC,KAAK0+B,eACxB1+B,KAAKyqB,MAAMoY,OAAQ7iC,KAAK0+B,cAAcjU,OACtCzqB,KAAK0+B,cAAgB,MAStB,MAAMwR,QAAWz0B,MAAMw0B,GAEjB5nB,QAAc6nB,EAAGp9B,OACvB,IAAIzI,EAAS,IAAIkkC,OAEb3zC,QAAeyP,EAAOqkC,UAAUtgC,EAAU,IAC9CpO,KAAK2+B,kBAAoBvlC,EACzB4G,KAAK4+B,iBAAmBoR,EAExB,IAAIvQ,EAAS,GAEb,IAAI,IAAIrpC,KAAKiyB,EAAM8nB,eACnB,CACU,IAAIC,EAAa,GACjB,IAAI,IAAI12C,KAAK2uB,EAAM8nB,eAAe/5C,GAAGnC,KACrC,CACR,IAAIuF,EACQ,CACIJ,KAAMivB,EAAM8nB,eAAe/5C,GAAGnC,KAAKyF,GAClD22C,UAAWhoB,EAAM8nB,eAAe/5C,GAAGnC,KAAKyF,GACzBwsC,WAAO7sC,EACPya,IAAK,EACpB4yB,OAAQre,EAAM8nB,eAAe/5C,GAAGk6C,QAAQjoB,EAAM8nB,eAAe/5C,GAAGk6C,QAAQ52C,GAAG,GAE5E,IAAI,IAAI62C,KAAKloB,EAAMmoB,aACnB,CACC,IAAIC,EAAMpoB,EAAM8nB,eAAe/5C,GAAGnC,KAAKyF,GAAG+J,MAAM,KAChD,GAAG4kB,EAAMmoB,aAAaD,GAAG9nB,OAASgoB,EAAI,GAErC,IAAI,IAAI91C,KAAK0tB,EAAMmoB,aAAaD,GAAGt8C,KAE/Bo0B,EAAMmoB,aAAaD,GAAG9nB,MAAM,IAAIJ,EAAMmoB,aAAaD,GAAGt8C,KAAK0G,IAAM0tB,EAAM8nB,eAAe/5C,GAAGnC,KAAKyF,KAEhGF,EAAE62C,UAAYhoB,EAAM8nB,eAAe/5C,GAAGnC,KAAKyF,GAC3CF,EAAEJ,KAAOivB,EAAMmoB,aAAaD,GAAG9nB,MAAM,IAAI9tB,GAOjCy1C,EAAWr7C,KAAKyE,GAEpBimC,EAAO1qC,KAAKq7C,GAEtB,IAAInqC,EAAQrL,EAAO6vB,MACnB7vB,EAASqL,EACTlL,QAAQ+I,IAAI,aAAamC,EAAM7M,MAC/B,IAAIiO,EAAMrH,KAAKqH,IACX23B,EAAsBh/B,KAAKg/B,oBAC3BI,EAA2Bp/B,KAAKo/B,yBACpCp/B,KAAKq/B,uBAAyBhX,EAAMqoB,KACpC91C,EAAO+1C,MAAM9/B,IAAmB,EAAfwX,EAAMuoB,MAAM,GAAoB,EAAfvoB,EAAMuoB,MAAM,GAAoB,EAAfvoB,EAAMuoB,MAAM,IAE/D5wC,KAAKyqB,MAAMzY,IAAKhS,KAAKwgC,WAGrB,IAAI14B,EAAOlN,EAAO+tB,gBAAiB,eAC/BkoB,EAAQj2C,EAAO+tB,gBAAiB,iBACpC,MAAMmoB,OAAkBz3C,GAANyO,QAA0BzO,GAAPw3C,EAGrCj2C,EAAOurC,UAAU,SAAWzd,GAG3B,GAAKA,EAAMimB,OACX,CAEC,GAAGjmB,EAAMqoB,sBAGR,IAAI,IAAIt2C,KAAOiuB,EAAMqoB,sBACrB,CACC,IAAIC,KAAmBC,MAAMx2C,KAASw2C,MAAMC,WAAWz2C,KAEvD,IAAI02C,EAAazoB,EAAMtvB,KAAK,IAAIsvB,EAAMqoB,sBAAsBt2C,IAEzDiuB,EAAMiC,QAAsC,IAA5BjC,EAAMiC,OAAOykB,SAASh2C,WAAwCC,GAA5BqvB,EAAMiC,OAAOykB,SAASh2C,WAAiDC,GAA/BqvB,EAAMiC,OAAOykB,SAASgC,SAAsBJ,KACxIG,EAAgDzoB,EAAMtvB,KAAK,IAAIqB,GAChD,kBAAbiuB,EAAMtvB,MAAuC,gBAAbsvB,EAAMtvB,MAAqC,iBAAbsvB,EAAMtvB,OAEtE+3C,EAAazoB,EAAMtvB,KAAK,IAAIqB,GAI7B,IAAI,IAAIjB,EAAI,EAAGA,EAAEimC,EAAOhrC,OAAQ+E,IAG/B,IAAI,IAAI/D,EAAE,EAAGA,EAAEgqC,EAAOjmC,GAAG/E,OAAQgB,IACjC,CACC,IAAIg7C,EAAMhR,EAAOjmC,GAAG/D,GAAG2D,KAAKqK,MAAM,KAClC,IAAI4sC,EAAYI,EAAI,GAAG,IAAItT,EAAczU,EAAMqoB,sBAAsBM,SAASZ,EAAIA,EAAIh8C,OAAO,KAC1Fi0B,EAAMqoB,sBAAsBt2C,IAAMA,IAEpCg2C,EAAMhR,EAAOjmC,GAAG/D,GAAG46C,UAAU5sC,MAAM,KACnC4sC,EAAYI,EAAIA,EAAIh8C,OAAO,GAAG,IAAIg8C,EAAIA,EAAIh8C,OAAO,IAI/CgrC,EAAOjmC,GAAG/D,GAAG2D,MAAQ+3C,QAAkC93C,GAApBomC,EAAOjmC,GAAG/D,GAAGywC,QAElDzG,EAAOjmC,GAAG/D,GAAGywC,MAAQxd,EACrB+W,EAAOjmC,GAAG/D,GAAGqe,GAAK4U,EAAMqoB,sBAAsBt2C,IAG5C41C,GAAac,QAAkC93C,GAApBomC,EAAOjmC,GAAG/D,GAAGywC,QAG1CzG,EAAOjmC,GAAG/D,GAAGywC,MAAQxd,EACrB+W,EAAOjmC,GAAG/D,GAAGqe,GAAK4U,EAAMqoB,sBAAsBt2C,KAQnD,CACC,MAAMjB,EAAI,IAAIwW,OAA4B,CACzCzT,MAAOmsB,EAAM+hB,SAASluC,MACtB+0C,UAAWjpB,EAAMkpB,UACjBC,UAAWnpB,EAAMopB,UACjBnpB,IAAMI,EAAM+hB,SAASniB,IACrBopB,UAAU,EACVC,aAAcjpB,EAAM+hB,SAASkH,aAC7B9sC,QAAS6jB,EAAM+hB,SAAS5lC,QACxBmlC,YAAathB,EAAM+hB,SAAST,cAG1B3hB,EAAMupB,WAERlpB,EAAM+hB,SAAWjxC,EACd6uB,EAAMwpB,aACRnpB,EAAM+hB,SAASiC,KAAO18B,SAEK,eAA1BovB,GAAqE,cAA1BA,IAE7C1W,EAAM+hB,SAASqH,OAAS9S,EACxBtW,EAAM+hB,SAAS8C,gBAAkBlmC,EAAIkmC,iBAMvC7kB,EAAMwhB,YAAa,EACnBxhB,EAAM6hB,eAAgB,EACtB7hB,EAAMymB,eAAe,MAIvBnvC,KAAKyqB,MAAMzY,IAAKpX,GAChBoF,KAAK0+B,cAAgB9jC,EACrBoF,KAAK0+B,cAAc5pB,KAAO1G,EAAU,GAEpCpO,KAAKy/B,OAASA,EAEd14B,EAAaC,KAAK,iBAElBhH,KAAKmgC,WAAW/V,UAAU0mB,EAAWjnB,EAA0BE,SAASnvB,EAAQytB,GAASwB,EAA2BE,SAASnvB,EAAQytB,IAErIroB,KAAKygC,SAASyJ,YAAa,EAE3BlqC,KAAK0gC,OAAO6J,eAAgB,EAE5BvqC,KAAK0+B,cAAc9tB,SAASK,KAAKjR,KAAK4hC,OAAO,GAAGhxB,UAChD5Q,KAAK0+B,cAAc5sB,SAAS+W,EAAG7oB,KAAK4hC,OAAO,GAAG9vB,SAASgX,EAKxD6d,eAAe7yB,EAAIpV,GAEfsB,KAAK0+B,eAAiB1+B,KAAK0+B,cAAcmH,oBAuBpC,GAAJ/xB,GAAO9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBC,GAAIvzC,GAC9E,GAAJoV,GAAO9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBE,GAAIxzC,GAC9E,GAAJoV,GAAO9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBG,GAAIzzC,GAC9E,GAAJoV,GAAO9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBI,GAAI1zC,GAC9E,GAAJoV,GAAO9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBK,GAAI3zC,GAE9E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBM,MAAO5zC,GAClF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBO,QAAS7zC,GACpF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBQ,IAAK9zC,GAChF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBS,MAAO/zC,GAClF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBU,UAAWh0C,GAEtF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBW,UAAWj0C,GACtF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBY,WAAYl0C,GAEvF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBa,OAAQn0C,GACnF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBc,SAAUp0C,GAErF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBe,SAAUr0C,GACrF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBgB,UAAWt0C,GAEtF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBiB,MAAOv0C,GAClF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBiB,MAAOv0C,GAElF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBQ,IAAK9zC,GAGhF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBS,MAAO/zC,GAClF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBS,MAAO/zC,GAElF,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBC,GAAIvzC,GAC/E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBK,GAAI3zC,GAC/E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBG,GAAIzzC,GAC/E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBG,GAAIzzC,GAC/E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBE,GAAIxzC,GAC/E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBE,GAAIxzC,GAC/E,IAAJoV,GAAQ9T,KAAK0+B,cAAcmH,kBAAkBkM,SAAUC,OAAwBE,GAAIxzC,IAGxF,kBAAkB6P,EAAI20B,GAErB,IAAIgQ,EAAI3kC,EACJ20B,IACHgQ,QAAUzE,OAAqByE,IAChC,IAAI7oC,EAAS,IAAI2F,QACjBhQ,KAAK3C,OAAOtI,WAAWsV,EAAOgC,KAAK6mC,IACnClzC,KAAK3C,OAAO2C,KAAK3C,OAAO5I,OAAO,GAAG0+C,OAAM,EACxCpsC,EAAaC,KAAK,QAAQksC,GAG3B,mBAAmBzZ,GAKlB,IAAI,IAAIyZ,KAHRnsC,EAAaC,KAAK,gBAClBhH,KAAKghC,WAAavH,EAClBz5B,KAAK3C,OAAS,GACDo8B,GACb,CACCyZ,QAAUzE,OAAqByE,EAAE,YACjC,IAAI7oC,EAAS,IAAI2F,QACjBhQ,KAAK3C,OAAOtI,WAAWsV,EAAOgC,KAAK6mC,IACnClzC,KAAK3C,OAAO2C,KAAK3C,OAAO5I,OAAO,GAAG0+C,OAAM,EACxCpsC,EAAaC,KAAK,QAAQksC,IAG5B,cAAe3kC,EAAMnV,GACrB,IAAAg6C,EACCpzC,KAAK2+B,kBAAoBpwB,EACzB,IAAI8kC,EAAa,IAAI9E,OACrB8E,EAAWC,SAAUC,GAAU,IAAIC,OAAgBD,IAEnDF,EAAWI,YAAc,YAEzB,IAAIrlC,QAAkBqgC,OAAqBlgC,EAAK,eAAe,GAC/D,IAAImlC,QAAaL,EAAW3E,UAAUtgC,EAAU,IAEhD,IAAIqxB,EAAS,GAEbiU,EAAKjpB,MAAMkmB,MAAM9/B,IAAI,EAAE,EAAE,GAGzB,MAAMwY,EAAMqqB,EAAKtE,SAAS/lB,IAEI,OAAlB,QAAR+pB,EAAA/pB,EAAIsqB,YAAI,IAAAP,OAAA,EAARA,EAAUQ,eAEbvqB,EAAIE,SAASC,sBAAsB,QAAQ1X,SAAS+W,EAAI3Z,KAAKo7B,IAS3DtqC,KAAK0+B,gBAEP1+B,KAAKyqB,MAAMoY,OAAQ7iC,KAAK0+B,eACxB1+B,KAAKyqB,MAAMoY,OAAQ7iC,KAAK0+B,cAAcjU,OACtCzqB,KAAK0+B,cAAgB,KACrB1+B,KAAKq/B,uBAAuBjmC,GAG7B4G,KAAKq/B,uBAAuBjmC,EAC5B4G,KAAK0+B,cAAgBrV,EACrBrpB,KAAK0+B,cAAc5pB,KAAO1G,EAAU,GACpCpO,KAAKyqB,MAAMzY,IAAKqX,EAAIoB,OAIjBpB,EAAIvY,SACNuY,EAAIvY,OAAOlZ,OAASoI,KAAKsiC,gBAE1BoR,EAAKjpB,MAAM0b,UAAU,SAAWzd,GAE/B,GAAKA,EAAMimB,OACX,CACCjmB,EAAM6hB,eAAgB,EACtB7hB,EAAMymB,eAAe,EACrB,IAAI31C,EAAIkvB,EAAM+hB,SACdjxC,EAAE0wC,YAAa,MAIjB,IAAI,IAAI31C,EAAE,EAAGA,EAAG,GAAOA,IACvB,CACC,IAAI67C,EAAa,GACb52C,EACJ,CACCJ,KAAM,GACNi3C,UAAW,GACXnK,WAAO7sC,EACPya,IAAK,GAENs8B,EAAWr7C,KAAKyE,GAChBimC,EAAO1qC,KAAKq7C,GAGbpwC,KAAKy/B,OAASA,EACd14B,EAAaC,KAAK,iBAClBhH,KAAKmgC,WAAW/V,UAAUP,EAAuBE,SAASV,IAC1DrpB,KAAKygC,SAASyJ,YAAa,EAC3BlqC,KAAK0gC,OAAO6J,eAAgB,EAE5BvqC,KAAK0+B,cAAcjU,MAAM7Z,SAASK,KAAKjR,KAAK4hC,OAAO,GAAGhxB,UACtD5Q,KAAK0+B,cAAcjU,MAAM3Y,SAAS+W,EAAG7oB,KAAK4hC,OAAO,GAAG9vB,SAASgX,EAI9D,oBAAoB1vB,GAEnB,MAAMy6C,EAAU,IAAIC,OACpB,IAAIzpC,EAAS,IAAIkkC,OAAWsF,GACxBzlC,QAAkBqgC,OAAqBr1C,GACvCwB,QAAeyP,EAAOqkC,UAAWtgC,GACjCnI,EAAQrL,EAAO6vB,MACnBxkB,EAAM0qC,MAAM9/B,IAAI,IAAI,IAAI,KAIxB7Q,KAAKogC,UAAYn6B,EAAM8tC,SAAS,GAAGA,SAAS,GAE5C/zC,KAAKogC,UAAU+F,UAAU,SAAWzd,GAEpB,OAAZA,EAAMtvB,MAERsvB,EAAM0d,IAAM,EACZ1d,EAAM6d,sBAAwB,IAAIvoB,MAAM,IAAIg2B,KAAK,IAE9B,QAAZtrB,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,SAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,UAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,SAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,UAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,SAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,UAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,UAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,EACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,aAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,YAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,UAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,aAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,YAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,UAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,QAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACQ,eAAZ1d,EAAMtvB,KACdsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,gBAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,gBAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,gBAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,gBAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,eAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,aAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,aAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,aAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,aAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,EAAM0d,IAAM,GACO,cAAZ1d,EAAMtvB,KACbsvB,E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","file":"js/app.f6972ac6.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"login\":\"login\",\"market\":\"market\",\"profile\":\"profile\",\"projects\":\"projects\",\"viewer\":\"viewer\"}[chunkId]||chunkId) + \".\" + {\"login\":\"c2fa7e26\",\"market\":\"c5014ae3\",\"profile\":\"edb5d5ea\",\"projects\":\"074d2f27\",\"viewer\":\"aefed92a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"login\":1,\"market\":1,\"profile\":1,\"projects\":1,\"viewer\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"login\":\"login\",\"market\":\"market\",\"profile\":\"profile\",\"projects\":\"projects\",\"viewer\":\"viewer\"}[chunkId]||chunkId) + \".\" + {\"login\":\"cbdcda42\",\"market\":\"f160a9ba\",\"profile\":\"90489ea3\",\"projects\":\"a439b457\",\"viewer\":\"def76f4e\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home2.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSupport.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSupport.vue?vue&type=script&lang=js&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidenavList.vue?vue&type=style&index=0&id=501ed811&scoped=true&lang=css&\"","import Vuex from 'vuex'\nimport Vue from 'vue'\n\nVue.use(Vuex)\nimport bootstrap from \"bootstrap/dist/js/bootstrap.min.js\";\n\nexport default new Vuex.Store({\n state: {\n isLoggedIn: false,\n isAdmin: false,\n email: undefined,\n hideConfigButton: false,\n isPinned: true,\n showConfig: false,\n showCharacterPanel: false,\n showEnvironmentPanel: false,\n showSlidesPanel: false,\n showRecordingPanel: false,\n showCameraPanel: false,\n showEditorPanel: true,\n isTransparent: \"\",\n isRTL: false,\n color: \"\",\n isNavFixed: false,\n isAbsolute: false,\n showNavs: true,\n showSidenav: true,\n showNavbar: false,\n showFooter: true,\n showMain: true,\n experimental: true,\n showSkeleton: false,\n micVoulume: 100,\n characters: [],\n environments: [],\n camera_motions: [],\n slides: [],\n cameras: [],\n navbarFixed:\n \"position-sticky blur shadow-blur left-auto top-1 z-index-sticky px-0 mx-4\",\n absolute: \"position-absolute px-4 mx-0 w-100 z-index-2\",\n bootstrap,\n hasSlides: false,\n has3dEnvironment: false,\n },\n mutations: {\n closeAllPanels(state)\n {\n state.showConfig = false;\n state.showCharacterPanel = false;\n state.showEnvironmentPanel = false;\n state.showSlidesPanel = false;\n state.showCameraPanel = false;\n state.showRecordingPanel = false;\n },\n toggleConfigurator(state) {\n state.showConfig = !state.showConfig;\n if(state.showConfig==true)\n {\n state.showCharacterPanel = false;\n state.showEnvironmentPanel = false;\n state.showSlidesPanel = false;\n state.showCameraPanel = false;\n state.showRecordingPanel = false;\n }\n },\n toggleCharacterPanel(state) {\n state.showCharacterPanel = !state.showCharacterPanel;\n if(state.showCharacterPanel == true)\n {\n state.showConfig = false;\n state.showEnvironmentPanel = false;\n state.showSlidesPanel = false;\n state.showCameraPanel = false;\n state.showRecordingPanel = false;\n }\n },\n toggleEnvironmentPanel(state) {\n state.showEnvironmentPanel = !state.showEnvironmentPanel;\n if(state.showEnvironmentPanel == true)\n {\n state.showConfig = false\n state.showCharacterPanel = false;\n state.showSlidesPanel = false;\n state.showCameraPanel = false;\n state.showRecordingPanel = false;\n }\n },\n toggleSlidesPanel(state) {\n state.showSlidesPanel = !state.showSlidesPanel;\n if(state.showSlidesPanel == true)\n {\n state.showConfig = false\n state.showCharacterPanel = false;\n state.showEnvironmentPanel = false;\n state.showCameraPanel = false;\n state.showRecordingPanel = false;\n }\n },\n toggleRecordingPanel(state) {\n state.showRecordingPanel = !state.showRecordingPanel;\n if(state.showRecordingPanel == true)\n {\n state.showConfig = false\n state.showCharacterPanel = false;\n state.showEnvironmentPanel = false;\n state.showCameraPanel = false;\n state.showSlidesPanel = false;\n }\n },\n toggleCameraPanel(state) {\n state.showCameraPanel = !state.showCameraPanel;\n if(state.showCameraPanel == true)\n {\n state.showConfig = false\n state.showCharacterPanel = false;\n state.showEnvironmentPanel = false;\n state.showSlidesPanel = false;\n state.showRecordingPanel = false;\n }\n },\n toggleEditorPanel(state)\n {\n state.showEditorPanel = !state.showEditorPanel;\n },\n collapseAll(state) {\n state.showSidenav = false;\n state.showSlidesPanel = false;\n state.showCameraPanel = false;\n state.showConfig = false\n state.showCharacterPanel = false;\n state.showEnvironmentPanel = false;\n state.showEditorPanel = false;\n state.showRecordingPanel = false;\n \n\n },\n navbarMinimize(state) {\n state.showSidenav = false;\n // state;\n // const sidenav_show = document.querySelector(\".g-sidenav-show\");\n // console.log({sidenav_show})\n // if (sidenav_show.classList.contains(\"g-sidenav-hidden\")) {\n // sidenav_show.classList.remove(\"g-sidenav-hidden\");\n // sidenav_show.classList.remove(\"g-sidenav-pinned\");\n // //state.isPinned = false;\n \n // } else {\n // sidenav_show.classList.add(\"g-sidenav-hidden\");\n // sidenav_show.classList.add(\"g-sidenav-pinned\");\n // //state.isPinned = true;\n // }\n\n },\n sidebarType(state, payload) {\n state.isTransparent = payload;\n },\n setLoggedIn(state, val){\n state.isLoggedIn = val;\n },\n cardBackground(state, payload) {\n state.color = payload;\n },\n navbarFixed(state) {\n state;\n // if (state.isNavFixed === false) {\n // state.isNavFixed = true;\n // } else {\n // state.isNavFixed = false;\n // }\n },\n showNavbar(state)\n {\n state.showNavbar = false;\n state.showSidenav = true;\n //state.showEditorPanel = true;\n },\n toggleEveryDisplay(state) {\n //state.showNavbar = !state.showNavbar;\n state.showSidenav = !state.showSidenav;\n state.showFooter = !state.showFooter;\n },\n toggleHideConfig(state) {\n state.hideConfigButton = !state.hideConfigButton;\n },\n },\n actions: {\n toggleSidebarColor({ commit }, payload) {\n commit(\"sidebarType\", payload);\n },\n setCardBackground({ commit }, payload) {\n commit(\"cardBackground\", payload);\n },\n },\n getters: {},\n});\n","'use strict';\r\nObject.defineProperty(exports, '__esModule', { value: true });\r\nvar prefix = 'fas';\r\nvar iconName = 'unreal';\r\nvar width =32;\r\nvar height =32;\r\nvar aliases = [];\r\nvar unicode = 'e049';\r\nvar svgPathData = 'M16 0c-8.766 0-15.865 7.161-15.865 16s7.099 16 15.865 16c8.76 0 15.865-7.161 15.865-16s-7.104-16-15.87-16zM16 0.703c4.047 0 7.859 1.594 10.724 4.479 2.859 2.875 4.453 6.766 4.443 10.818 0 4.083-1.578 7.927-4.443 10.818-2.828 2.87-6.693 4.484-10.724 4.479-4.031 0.005-7.896-1.609-10.724-4.479-2.859-2.875-4.458-6.766-4.448-10.818 0-4.083 1.583-7.927 4.443-10.818 2.828-2.875 6.698-4.49 10.729-4.479zM15.203 6.333c-2.583 0.693-4.974 2.021-8.161 5.677s-2.583 6.677-2.583 6.677c0 0 0.88-2.078 2.995-4.266 1.005-1.036 1.75-1.385 2.266-1.385 0.458-0.026 0.844 0.344 0.844 0.802v7.422c0 0.734-0.474 0.896-0.911 0.885-0.37-0.005-0.714-0.135-0.714-0.135 2.172 3.156 7.37 3.599 7.37 3.599l2.281-2.438 0.052 0.047 2.089 1.781c3.823-2.271 5.667-6.479 5.667-6.479-1.708 1.802-2.792 2.224-3.438 2.224-0.573-0.005-0.797-0.339-0.797-0.339-0.031-0.156-0.083-2.417-0.104-4.677-0.021-2.339 0-4.682 0.115-4.688 0.661-1.24 2.766-3.74 2.766-3.74-3.932 0.776-6.073 3.354-6.073 3.354-0.635-0.5-1.927-0.417-1.927-0.417 0.604 0.333 1.208 1.302 1.208 2.104v7.896c0 0-1.318 1.161-2.333 1.161-0.604 0-0.974-0.328-1.177-0.599-0.078-0.104-0.146-0.219-0.198-0.344v-9.75c-0.141 0.104-0.313 0.161-0.484 0.167-0.219 0-0.443-0.109-0.594-0.427-0.115-0.24-0.188-0.599-0.188-1.125 0-1.797 2.031-2.99 2.031-2.99z';\r\n\r\nexports.definition = {\r\n prefix: prefix,\r\n iconName: iconName,\r\n icon: [\r\n width,\r\n height,\r\n aliases,\r\n unicode,\r\n svgPathData\r\n ]};\r\n\r\nexports.faUnreal = exports.definition;\r\nexports.prefix = prefix;\r\nexports.iconName = iconName;\r\nexports.width = width;\r\nexports.height = height;\r\nexports.ligatures = aliases;\r\nexports.unicode = unicode;\r\nexports.svgPathData = svgPathData;\r\nexports.aliases = aliases;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('configurator',{class:[\n this.$store.state.showConfig ? 'show' : '' ],attrs:{\"toggle\":_vm.toggleConfigurator}}),_c('character-panel',{class:[\n this.$store.state.showCharacterPanel ? 'show' : '' ],attrs:{\"toggle\":_vm.toggleCharacterPanel}}),_c('environment-panel',{class:[\n this.$store.state.showEnvironmentPanel ? 'show' : '' ],attrs:{\"toggle\":_vm.toggleEnvironmentPanel}}),_c('slides-panel',{class:[\n this.$store.state.showSlidesPanel ? 'show' : '' ],attrs:{\"toggle\":_vm.toggleSlidesPanel}}),_c('camera-panel',{class:[\n this.$store.state.showCameraPanel ? 'show' : '' ],attrs:{\"toggle\":_vm.toggleCameraPanel}}),_c('recording-panel',{class:[\n this.$store.state.showRecordingPanel ? 'show' : '' ],attrs:{\"toggle\":_vm.toggleRecordingPanel}}),(this.$store.state.showSidenav&&this.$store.state.showNavs)?_c('sidenav',{attrs:{\"is-blur\":\"blur blur-rounded my-3 py-2 start-0 end-0 mx-4 shadow\"}}):_vm._e(),(this.$store.state.showNavs)?_c('div',[(!this.$store.state.showSidenav)?_c('div',{staticClass:\"fixed-plugin\",staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"left\":\"0\",\"z-index\":\"10\",\"margin\":\"35px\"}},[_c('a',{staticClass:\"px-1 py-2 fixed-plugin-button text-dark \",staticStyle:{\"background-color\":\"rgba(255,255,255,0.6)\"},on:{\"click\":_vm.showNavbar}},[_c('img',{staticClass:\"navbar-brand-img h-50\",attrs:{\"src\":_vm.logo,\"width\":\"35\",\"height\":\"35\",\"alt\":\"main_logo\"}})])]):_vm._e()]):_vm._e(),_c('main',{staticClass:\"main-content position-relative max-height-vh-100 h-100 border-radius-lg \"},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"table\"}},[_c('div',{staticClass:\"hint\",staticStyle:{\"position\":\"absolute\",\"left\":\"300px\",\"top\":\"0\",\"z-index\":\"100\"},attrs:{\"id\":\"tooltip\"}}),_c('aside',{staticClass:\"my-3 overflow-auto border-0 sidenav navbar navbar-vertical navbar-expand-xs border-radius-xl blur\",class:_vm.isRTL ? 'me-3 rotate-caret' : 'ms-3',staticStyle:{\"overflow-y\":\"overlay!important\"},attrs:{\"id\":\"sidenav-main\"}},[_c('div',{staticClass:\"mt-2 float-start\",staticStyle:{\"margin-left\":\"10px\"},on:{\"click\":_vm.collapseAll}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-angle-left\"}})],1)]),_c('br'),_c('div',{staticClass:\"sidenav-header\"},[_c('i',{staticClass:\"top-0 p-3 cursor-pointer fas fa-times text-secondary opacity-5 position-absolute end-0 d-none d-xl-none\",attrs:{\"aria-hidden\":\"true\",\"id\":\"iconSidenav\"}}),_c('a',{staticClass:\"m-0 navbar-brand\",attrs:{\"href\":\"/\"},on:{\"mousemove\":function($event){return _vm.showTooltip($event.pageX,$event.pageY,'Home')},\"mouseleave\":_vm.hideTooltip}},[_c('img',{staticClass:\"navbar-brand-img h-100\",attrs:{\"src\":_vm.logo,\"alt\":\"main_logo\"}}),_c('span',{staticClass:\"ms-1 font-weight-bold\"},[_vm._v(\"GO\")]),_c('span',{staticClass:\"ms-1\",staticStyle:{\"vertical-align\":\"text-bottom\",\"font-size\":\"12px\"}},[_vm._v(\"beta\")])])]),_c('hr',{staticClass:\"mt-0 horizontal dark\"}),_c('sidenav-list',{attrs:{\"id\":\"sidenav\",\"cardBg\":_vm.customClass,\"onShowTooltip\":_vm.showTooltip,\"onHideTooltip\":_vm.hideTooltip}}),_c('div',{staticClass:\"fixed-plugin\"},[_c('a',{staticClass:\"nav-item px-3 py-2 fixed-plugin-button text-dark \",staticStyle:{\"left\":\"22px!important\",\"bottom\":\"-100px!important\",\"position\":\"relative!important\",\"display\":\"table-cell\",\"margin-bottom\":\"0!important\"},attrs:{\"id\":\"gear\"},on:{\"click\":_vm.toggleConfigurator,\"mousemove\":function($event){return _vm.showTooltip($event.pageX,$event.pageY,'Settings')},\"mouseleave\":_vm.hideTooltip}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-gear\"}}),_c('i',{staticClass:\"py-2 fa fa-cog\"})],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"w-auto collapse navbar-collapse \",staticStyle:{\"display\":\"table-cell\"},attrs:{\"id\":\"sidenav-collapse-main\"}},[_c('ul',{staticClass:\"navbar-nav \"},[(this.$store.state.isLoggedIn)?_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Projects')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Projects\",\"to\":{ name: 'projects' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('shop')]},proxy:true}],null,false,2533577191)})],1):_vm._e(),(this.$store.state.isLoggedIn)?_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Profile')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Profile\",\"to\":{ name: 'profile' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('customer-support')]},proxy:true}],null,false,2368766757)})],1):_vm._e(),(!this.$store.state.isLoggedIn)?_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Sign In')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Sign In\",\"to\":{ name: 'login' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('document')]},proxy:true}],null,false,653473548)})],1):_vm._e(),_c('li',{staticClass:\"nav-item iconClass\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Pricing')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Pricing\",\"to\":{ name: 'pricing' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-tag\"}})]},proxy:true}])})],1),_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Docs')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Docs\",\"to\":{ name: 'docs' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-book\"}})]},proxy:true}])})],1),(this.$route.name=='viewer')?_c('div',[_c('br'),_c('hr',{staticClass:\"mt-0 horizontal dark\"}),_c('li',{staticClass:\"nav-item\",on:{\"click\":_vm.toggleCharacterPanel,\"mousemove\":function($event){return _vm.showTooltip($event,'Characters')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Characters\",\"to\":{ name: '' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-person\"}})]},proxy:true}],null,false,1226468531)})],1),_c('li',{staticClass:\"nav-item\",on:{\"click\":_vm.toggleEnvironmentPanel,\"mousemove\":function($event){return _vm.showTooltip($event,'Environments')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Environments\",\"to\":{ name: '' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-panorama\"}})]},proxy:true}],null,false,479756521)})],1)]):_vm._e(),(this.$route.name=='viewer' && (this.$route.params.project=='Stage') || this.$store.state.hasSlides==true)?_c('div',{on:{\"click\":_vm.toggleSlidesPanel}},[_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Slides')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Slides\",\"to\":{ name: '' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-images\"}})]},proxy:true}],null,false,4215642482)})],1)]):_vm._e(),(this.$route.name=='viewer' && (this.$route.params.project=='Stage') || this.$store.state.has3dEnvironment==true)?_c('div',{on:{\"click\":_vm.toggleCameraPanel}},[_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Camera')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Camera\",\"to\":{ name: '' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-video\"}})]},proxy:true}],null,false,546160567)})],1)]):_vm._e(),(this.$route.name=='viewer')?_c('div',{on:{\"click\":_vm.toggleRecordingPanel}},[_c('li',{staticClass:\"nav-item\",on:{\"mousemove\":function($event){return _vm.showTooltip($event,'Recording')},\"mouseleave\":_vm.hideTooltip}},[_c('sidenav-collapse',{attrs:{\"navText\":\"Recording\",\"to\":{ name: '' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-clapperboard\"}})]},proxy:true}],null,false,2258427365)})],1)]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',_vm._b({staticClass:\"nav-link\",attrs:{\"to\":_vm.to,\"active-class\":\"active\"}},'router-link',_vm.$attrs,false),[_c('div',{staticClass:\"text-center bg-white shadow icon icon-shape icon-sm border-radius-md d-flex align-items-center justify-content-center\",class:this.$store.state.isRTL ? ' ms-2' : 'me-2'},[_vm._t(\"icon\")],2),_c('span',{staticClass:\"nav-link-text\",class:this.$store.state.isRTL ? ' me-1' : 'ms-1'},[_vm._v(_vm._s(_vm.navText))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidenavCollapse.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidenavCollapse.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidenavCollapse.vue?vue&type=template&id=90daaaf6&\"\nimport script from \"./SidenavCollapse.vue?vue&type=script&lang=js&\"\nexport * from \"./SidenavCollapse.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"12px\",\"height\":\"12px\",\"viewBox\":\"0 0 45 40\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"shop\")]),_c('g',{attrs:{\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"transform\":\"translate(-1716.000000, -439.000000)\",\"fill\":\"#FFFFFF\",\"fill-rule\":\"nonzero\"}},[_c('g',{attrs:{\"transform\":\"translate(1716.000000, 291.000000)\"}},[_c('g',{attrs:{\"transform\":\"translate(0.000000, 148.000000)\"}},[_c('path',{staticClass:\"color-background\",attrs:{\"d\":\"M46.7199583,10.7414583 L40.8449583,0.949791667 C40.4909749,0.360605034 39.8540131,0 39.1666667,0 L7.83333333,0 C7.1459869,0 6.50902508,0.360605034 6.15504167,0.949791667 L0.280041667,10.7414583 C0.0969176761,11.0460037 -1.23209662e-05,11.3946378 -1.23209662e-05,11.75 C-0.00758042603,16.0663731 3.48367543,19.5725301 7.80004167,19.5833333 L7.81570833,19.5833333 C9.75003686,19.5882688 11.6168794,18.8726691 13.0522917,17.5760417 C16.0171492,20.2556967 20.5292675,20.2556967 23.494125,17.5760417 C26.4604562,20.2616016 30.9794188,20.2616016 33.94575,17.5760417 C36.2421905,19.6477597 39.5441143,20.1708521 42.3684437,18.9103691 C45.1927731,17.649886 47.0084685,14.8428276 47.0000295,11.75 C47.0000295,11.3946378 46.9030823,11.0460037 46.7199583,10.7414583 Z\",\"opacity\":\"0.598981585\"}}),_c('path',{staticClass:\"color-background\",attrs:{\"d\":\"M39.198,22.4912623 C37.3776246,22.4928106 35.5817531,22.0149171 33.951625,21.0951667 L33.92225,21.1107282 C31.1430221,22.6838032 27.9255001,22.9318916 24.9844167,21.7998837 C24.4750389,21.605469 23.9777983,21.3722567 23.4960833,21.1018359 L23.4745417,21.1129513 C20.6961809,22.6871153 17.4786145,22.9344611 14.5386667,21.7998837 C14.029926,21.6054643 13.533337,21.3722507 13.0522917,21.1018359 C11.4250962,22.0190609 9.63246555,22.4947009 7.81570833,22.4912623 C7.16510551,22.4842162 6.51607673,22.4173045 5.875,22.2911849 L5.875,44.7220845 C5.875,45.9498589 6.7517757,46.9451667 7.83333333,46.9451667 L19.5833333,46.9451667 L19.5833333,33.6066734 L27.4166667,33.6066734 L27.4166667,46.9451667 L39.1666667,46.9451667 C40.2482243,46.9451667 41.125,45.9498589 41.125,44.7220845 L41.125,22.2822926 C40.4887822,22.4116582 39.8442868,22.4815492 39.198,22.4912623 Z\"}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Shop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Shop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Shop.vue?vue&type=template&id=68a90ff2&\"\nimport script from \"./Shop.vue?vue&type=script&lang=js&\"\nexport * from \"./Shop.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":\"0 0 40 44\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"document\")]),_c('g',{attrs:{\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"transform\":\"translate(-1870.000000, -591.000000)\",\"fill\":\"#FFFFFF\",\"fill-rule\":\"nonzero\"}},[_c('g',{attrs:{\"transform\":\"translate(1716.000000, 291.000000)\"}},[_c('g',{attrs:{\"transform\":\"translate(154.000000, 300.000000)\"}},[_c('path',{staticClass:\"color-background\",attrs:{\"d\":\"M40,40 L36.3636364,40 L36.3636364,3.63636364 L5.45454545,3.63636364 L5.45454545,0 L38.1818182,0 C39.1854545,0 40,0.814545455 40,1.81818182 L40,40 Z\",\"opacity\":\"0.603585379\"}}),_c('path',{staticClass:\"color-background\",attrs:{\"d\":\"M30.9090909,7.27272727 L1.81818182,7.27272727 C0.814545455,7.27272727 0,8.08727273 0,9.09090909 L0,41.8181818 C0,42.8218182 0.814545455,43.6363636 1.81818182,43.6363636 L30.9090909,43.6363636 C31.9127273,43.6363636 32.7272727,42.8218182 32.7272727,41.8181818 L32.7272727,9.09090909 C32.7272727,8.08727273 31.9127273,7.27272727 30.9090909,7.27272727 Z M18.1818182,34.5454545 L7.27272727,34.5454545 L7.27272727,30.9090909 L18.1818182,30.9090909 L18.1818182,34.5454545 Z M25.4545455,27.2727273 L7.27272727,27.2727273 L7.27272727,23.6363636 L25.4545455,23.6363636 L25.4545455,27.2727273 Z M25.4545455,20 L7.27272727,20 L7.27272727,16.3636364 L25.4545455,16.3636364 L25.4545455,20 Z\"}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Document.vue?vue&type=template&id=4753a8d6&\"\nimport script from \"./Document.vue?vue&type=script&lang=js&\"\nexport * from \"./Document.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidenavList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidenavList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidenavList.vue?vue&type=template&id=501ed811&scoped=true&\"\nimport script from \"./SidenavList.vue?vue&type=script&lang=js&\"\nexport * from \"./SidenavList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidenavList.vue?vue&type=style&index=0&id=501ed811&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"501ed811\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=61e3b1cc&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=61e3b1cc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61e3b1cc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fixed-plugin\"},[_c('div',{staticClass:\"card blur\",staticStyle:{\"overflow\":\"auto !important\"}},[_c('div',{staticClass:\"pt-3 pb-0 bg-transparent card-header\"},[_vm._m(0),_c('div',{staticClass:\"mt-4 float-end\",on:{\"click\":_vm.toggle}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-close\"}})],1)])]),_c('div',{staticClass:\"pt-0 card-body pt-sm-3\"},[(this.$store.state.isLoggedIn)?_c('div',[_vm._m(1),_c('div',{staticClass:\"d-flex\"},[_c('i',{staticStyle:{\"cursor\":\"pointer\",\"margin-left\":\"0px\",\"margin-top\":\"10px\"},on:{\"touchstart\":function($event){return _vm.onResetId()},\"click\":function($event){return _vm.onResetId()}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-rotate-right\"}})],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.room),expression:\"room\"}],staticClass:\"px-3 mb-2 form-control w-100 ms-2\",attrs:{\"type\":\"number\",\"placeholder\":\"Room ID\"},domProps:{\"value\":(_vm.room)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.room=$event.target.value}}}),_c('button',{staticClass:\"px-3 mb-2 btn w-100 ms-2\",class:[_vm.connected ? 'active' : '', _vm.connected ? 'bg-gradient-danger' : 'bg-gradient-success'],attrs:{\"id\":\"btn-white\"},on:{\"click\":_vm.ConnectClick}},[(!_vm.connected)?_c('i',[_vm._v(\"Connect\")]):_c('i',[_vm._v(\"Disconnect\")])])]),_c('p',{staticClass:\"mt-2 text-sm d-xl-none d-block\"},[_vm._v(\" You can change the sidenav type just on desktop view. \")]),_vm._m(2),_c('div',{staticClass:\"form-check form-switch ps-0\"},[_c('input',{staticClass:\"mt-1 form-check-input\",class:this.$store.state.isRTL ? 'float-end me-auto' : ' ms-auto',attrs:{\"type\":\"checkbox\",\"id\":\"navbarFixed\"},domProps:{\"checked\":this.$store.state.showSkeleton},on:{\"change\":_vm.onSkeleton}})]),_vm._m(3),_c('div',{staticClass:\"form-check form-switch ps-0\"},[_c('input',{staticClass:\"mt-1 form-check-input\",class:this.$store.state.isRTL ? 'float-end me-auto' : ' ms-auto',attrs:{\"type\":\"checkbox\",\"id\":\"navbarExperimental\"},domProps:{\"checked\":this.$store.state.experimental},on:{\"change\":_vm.setExperimental}})]),_vm._m(4),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.micVal),expression:\"micVal\"}],staticClass:\"w-100\",attrs:{\"type\":\"range\",\"min\":\"0\",\"max\":\"150\",\"value\":\"0\"},domProps:{\"value\":(_vm.micVal)},on:{\"mouseup\":_vm.setMicVolume,\"touchend\":_vm.setMicVolume,\"__r\":function($event){_vm.micVal=$event.target.value}}}),_c('hr',{staticClass:\"horizontal dark my-sm-4\"}),_c('a',{staticClass:\"btn bg-gradient-dark w-100\",on:{\"click\":_vm.onCalibrate}},[_vm._v(\"Calibrate A-pose\")])]):_vm._e(),_c('a',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-1\",modifiers:{\"modal-1\":true}}],staticClass:\"btn bg-gradient-dark w-100\"},[_vm._v(\"Setup WIFI\")])])]),_c('b-modal',{attrs:{\"id\":\"modal-1\",\"title\":\"Enter WIFI SSID and passowrd, Then show the qrcode to Red Pill Go Camera\",\"hide-footer\":\"\"},model:{value:(_vm.modal_con),callback:function ($$v) {_vm.modal_con=$$v},expression:\"modal_con\"}},[_c('canvas',{staticClass:\"qrcode\",attrs:{\"id\":\"qrcode\"}}),_c('div',{staticStyle:{\"margin\":\"5px\"},attrs:{\"id\":\"test\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.ssid),expression:\"ssid\"}],staticClass:\"form-control\",attrs:{\"type\":\"email\",\"placeholder\":\"WIFI SSID\",\"required\":\"\"},domProps:{\"value\":(_vm.ssid)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.ssid=$event.target.value}}})]),_c('div',{staticStyle:{\"margin\":\"5px\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.wifi_pass),expression:\"wifi_pass\"}],staticClass:\"form-control\",attrs:{\"type\":\"password\",\"placeholder\":\"Password\",\"required\":\"\"},domProps:{\"value\":(_vm.wifi_pass)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.wifi_pass=$event.target.value}}})]),_c('b-button',{staticClass:\"form-control\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.genQRCode}},[_vm._v(\"Generate\")])],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-start\"},[_c('h5',{staticClass:\"mt-3 mb-0\"},[_vm._v(\"Settings\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-3\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\"Connection\")]),_c('p',{staticClass:\"text-sm\"},[_vm._v(\"Run Red Pill Go then connect to the animation stream\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-3\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\"Show Source Skeleton\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-3\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\"Animate Hands\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-3\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\"Mic Level\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Configurator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Configurator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Configurator.vue?vue&type=template&id=1b5f9ffc&scoped=true&\"\nimport script from \"./Configurator.vue?vue&type=script&lang=js&\"\nexport * from \"./Configurator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Configurator.vue?vue&type=style&index=0&id=1b5f9ffc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b5f9ffc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fixed-plugin\"},[_c('div',{staticClass:\"card blur\",staticStyle:{\"overflow\":\"auto !important\"}},[_c('div',{staticClass:\"pt-3 pb-0 bg-transparent card-header\"},[_vm._m(0),_c('div',{staticClass:\"mt-4 float-end\",on:{\"click\":_vm.toggle}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-close\"}})],1)])]),_c('div',[(this.$store.state.isLoggedIn)?_c('div',_vm._l((this.$store.state.characters),function(char,index){return _c('ul',{key:index,staticClass:\"list-group\"},[_c('li',{staticClass:\"px-4 mb-2 border-0 list-group-item d-flex align-items-center\",staticStyle:{\"background-color\":\"transparent!important\",\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.setCharater((\"\" + index))}}},[_c('soft-avatar',{staticClass:\"me-3\",attrs:{\"img\":(\"\" + (char[1])),\"alt\":\"kal\",\"border-radius\":\"lg\",\"shadow\":\"regular\"}}),_c('div',{staticClass:\"d-flex align-items-start flex-column justify-content-center\"},[_c('h6',{staticClass:\"mb-0 text-sm\"},[_vm._v(_vm._s(char[3]))]),(char[4])?_c('p',{staticClass:\"mb-0 text-xs\"},[_vm._v(\"author: \"),_c('a',{attrs:{\"onclick\":\"event.cancelBubble=true;\",\"href\":(\"\" + (char[4].author.url)),\"target\":\"_blank\"}},[_vm._v(_vm._s(char[4].author.name))])]):_vm._e(),(char[4])?_c('p',{staticClass:\"mb-0 text-xs\"},[_vm._v(\"licens: \"),_c('a',{attrs:{\"onclick\":\"event.cancelBubble=true;\",\"href\":(\"\" + (char[4].license.url)),\"target\":\"_blank\"}},[_vm._v(_vm._s(char[4].license.label))]),_vm._v(\" \"),_c('a',{attrs:{\"onclick\":\"event.cancelBubble=true;\",\"href\":(\"\" + (char[4].source)),\"target\":\"_blank\"}},[_vm._v(\"source\")])]):_vm._e()])],1)])}),0):_vm._e()])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-start\"},[_c('h5',{staticClass:\"mt-3 mb-0\"},[_vm._v(\"Characters\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"avatar\",class:_vm.getSize(_vm.size)},[_c('img',{class:[_vm.getClasses(_vm.shadow, _vm.circular, _vm.borderRadius)],attrs:{\"src\":_vm.img,\"alt\":_vm.alt}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftAvatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftAvatar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SoftAvatar.vue?vue&type=template&id=685e1b67&\"\nimport script from \"./SoftAvatar.vue?vue&type=script&lang=js&\"\nexport * from \"./SoftAvatar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CharacterPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CharacterPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CharacterPanel.vue?vue&type=template&id=36af11f6&scoped=true&\"\nimport script from \"./CharacterPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./CharacterPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CharacterPanel.vue?vue&type=style&index=0&id=36af11f6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36af11f6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fixed-plugin\"},[_c('div',{staticClass:\" card blur\",staticStyle:{\"overflow\":\"auto !important\"}},[_c('div',{staticClass:\"pt-3 pb-0 bg-transparent card-header\"},[_vm._m(0),_c('div',{staticClass:\"mt-4 float-end\",on:{\"click\":_vm.toggle}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-close\"}})],1)])]),_c('div',[(this.$store.state.isLoggedIn)?_c('div',[_vm._l((this.$store.state.environments),function(env,index){return _c('ul',{key:index,staticClass:\"list-group\"},[_c('li',{staticClass:\"px-4 mb-2 border-0 list-group-item d-flex align-items-center\",staticStyle:{\"background-color\":\"transparent!important\",\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.setEnvironment((\"\" + index))}}},[_c('soft-avatar',{staticClass:\"me-3\",attrs:{\"img\":(\"\" + (env[8])),\"alt\":\"kal\",\"border-radius\":\"lg\",\"shadow\":\"regular\"}}),_c('div',{staticClass:\"d-flex align-items-start flex-column justify-content-center\"},[_c('h6',{staticClass:\"mb-0 text-sm\"},[_vm._v(_vm._s(env[7]))]),_c('p',{staticClass:\"mb-0 text-xs\"},[_vm._v(\"Price: Free\")])])],1)])}),_c('div',[(_vm.cameras.length>0)?_c('CustomSelect',{staticClass:\"select\",attrs:{\"options\":_vm.cameras,\"attribute\":'text',\"default\":'Video Background'},on:{\"input\":_vm.setCamera},model:{value:(_vm.selected_cam),callback:function ($$v) {_vm.selected_cam=$$v},expression:\"selected_cam\"}}):_vm._e(),_c('br'),_c('a',{staticClass:\"btn bg-gradient-dark w-100\",on:{\"click\":_vm.getDevices}},[_vm._v(\"Use Camera\")])],1)],2):_vm._e()])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-start\"},[_c('h5',{staticClass:\"mt-3 mb-0\"},[_vm._v(\"Environments\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EnvironmentPanel.vue?vue&type=template&id=15a5be1a&scoped=true&\"\nimport script from \"./EnvironmentPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./EnvironmentPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EnvironmentPanel.vue?vue&type=style&index=0&id=15a5be1a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15a5be1a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fixed-plugin\"},[_c('div',{staticClass:\"shadow-lg card blur\",staticStyle:{\"overflow\":\"auto !important\"}},[_c('div',{staticClass:\"pt-3 pb-0 bg-transparent card-header\"},[_vm._m(0),_c('div',{staticClass:\"mt-4 float-end\",on:{\"click\":_vm.toggle}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-close\"}})],1)])]),_c('div',{staticClass:\"mt-3\"},[_c('h6',{staticClass:\"mb-0\"},[_vm._v(\"Speed: \"+_vm._s(this.speed)+\" %\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.speed),expression:\"speed\"}],staticClass:\"w-100\",attrs:{\"type\":\"range\",\"min\":\"0\",\"max\":\"200\",\"value\":\"100\"},domProps:{\"value\":(_vm.speed)},on:{\"mouseup\":_vm.setSlideSpeed,\"touchend\":_vm.setSlideSpeed,\"__r\":function($event){_vm.speed=$event.target.value}}}),_c('br'),_c('div',[(this.$store.state.isLoggedIn)?_c('div',[_c('a',{staticClass:\"btn bg-gradient-dark w-100\",on:{\"click\":_vm.onSlide}},[_vm._v(\"Add Slide\")]),_c('input',{ref:\"file\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"image/png, image/jpeg\"},on:{\"input\":function($event){return _vm.onFile(this)}}}),_c('draggable',_vm._b({staticClass:\"list-group\",attrs:{\"tag\":\"ul\"},on:{\"start\":function($event){_vm.isDragging = true},\"end\":_vm.onDrop},model:{value:(_vm.list),callback:function ($$v) {_vm.list=$$v},expression:\"list\"}},'draggable',_vm.dragOptions,false),[_c('transition-group',{attrs:{\"type\":\"transition\",\"name\":\"flip-list\"}},_vm._l((_vm.list),function(element,index){return _c('ul',{key:element.name,staticClass:\"list-group\",on:{\"click\":function($event){return _vm.onSlideId(index)},\"touchstart\":function($event){return _vm.onSlideId(index,$event)}}},[_c('li',{staticClass:\"px-1 mb-2 border-0 list-group-item d-flex align-items-center\"},[_c('soft-avatar',{staticStyle:{\"width\":\"90px\"},attrs:{\"img\":(\"\" + (element.url)),\"alt\":\"kal\",\"border-radius\":\"lg\",\"shadow\":\"regular\"}}),_c('i',{staticStyle:{\"width\":\"100px\",\"margin-left\":\"10px\"}},[_vm._v(_vm._s(index+1)+\" - \"+_vm._s(element.name))]),_c('i',{staticStyle:{\"cursor\":\"pointer\",\"margin-left\":\"90px\"},on:{\"touchstart\":function($event){return _vm.onDelete(element,$event)},\"click\":function($event){return _vm.onDelete(element)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-trash\"}})],1)],1)])}),0)],1)],1):_vm._e()])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-start\"},[_c('h5',{staticClass:\"mt-3 mb-1\"},[_vm._v(\"Slides\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlidesPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlidesPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SlidesPanel.vue?vue&type=template&id=61be574a&scoped=true&\"\nimport script from \"./SlidesPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./SlidesPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SlidesPanel.vue?vue&type=style&index=0&id=61be574a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61be574a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fixed-plugin\"},[_c('div',{staticClass:\" card blur\",staticStyle:{\"overflow\":\"auto !important\"}},[_c('div',{staticClass:\"pt-3 pb-0 bg-transparent card-header\"},[_vm._m(0),_c('div',{staticClass:\"mt-4 float-end\",on:{\"click\":_vm.toggle}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-close\"}})],1)])]),_c('br'),_c('div',[(this.$store.state.isLoggedIn)?_c('div',[_c('a',{staticClass:\"btn bg-gradient-dark w-100\",on:{\"click\":_vm.onCamera}},[_vm._v(\"Add Camera\")]),(_vm.$store.state.cameras.length>1)?_c('a',{staticClass:\"btn bg-gradient-dark w-100\",on:{\"click\":function($event){_vm.play=!_vm.play; _vm.onPlay()}}},[(!_vm.play)?_c('div',[_vm._v(\"Play All\")]):_c('div',[_vm._v(\"Stop Playback\")])]):_vm._e(),_c('draggable',_vm._b({staticClass:\"list-group\",attrs:{\"tag\":\"ul\",\"options\":{handle: '.drag'}},on:{\"start\":function($event){_vm.isDragging = true},\"end\":_vm.onDrop},model:{value:(_vm.$store.state.cameras),callback:function ($$v) {_vm.$set(_vm.$store.state, \"cameras\", $$v)},expression:\"$store.state.cameras\"}},'draggable',_vm.dragOptions,false),[_c('transition-group',{attrs:{\"type\":\"transition\",\"name\":\"flip-list\"}},_vm._l((_vm.$store.state.cameras),function(element,index){return _c('ul',{key:index,staticClass:\"list-group\"},[_c('li',{staticClass:\"px-1 mb-2 border-0 list-group-item d-flex align-items-center\",staticStyle:{\"height\":\"150px\"}},[_c('font-awesome-icon',{staticClass:\"drag\",staticStyle:{\"margin-left\":\"5px\",\"cursor\":\"move\"},attrs:{\"icon\":\"fa-solid fa-up-down\"}}),_c('camera-card',{staticStyle:{\"width\":\"100%\",\"margin-left\":\"10px\"},attrs:{\"cam\":element,\"del\":_vm.onDelete,\"activate\":_vm.onActivate,\"border-radius\":\"lg\",\"shadow\":\"regular\"}})],1)])}),0)],1)],1):_vm._e()])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-start\"},[_c('h5',{staticClass:\"mt-3 mb-1\"},[_vm._v(\"Cameras\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.getSize(_vm.size)},[_c('div',{staticClass:\"grid-container\"},[_c('div',{staticClass:\"item1 float-start\",staticStyle:{\"cursor\":\"pointer\",\"margin-left\":\"-30px\"},on:{\"click\":function($event){_vm.cam.active=!_vm.cam.active; _vm.activate(_vm.cam,_vm.cam.active);}}},[(this.cam.active)?_c('div',[_c('font-awesome-icon',{staticStyle:{\"color\":\"red\"},attrs:{\"icon\":\"fa-solid fa-video\"}})],1):_c('div',[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-video\"}})],1)]),_c('div',{staticClass:\"item2\",staticStyle:{\"cursor\":\"pointer\",\"margin-right\":\"10px\"}},[_c('a',[_vm._v(_vm._s(_vm.cam.type))]),_c('CustomSelect',{staticClass:\"select\",attrs:{\"options\":['Fixed','Slider','Crane'],\"default\":_vm.cam.type},on:{\"input\":_vm.onType},model:{value:(_vm.cam.type),callback:function ($$v) {_vm.$set(_vm.cam, \"type\", $$v)},expression:\"cam.type\"}})],1),_c('div',{staticClass:\"item3 float-end\",staticStyle:{\"cursor\":\"pointer\",\"margin-left\":\"-10px\"},on:{\"click\":function($event){return _vm.del(_vm.cam)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-trash\"}})],1)]),_c('div',{staticClass:\"mt-3\",staticStyle:{\"margin-left\":\"5px\"}},[_c('div',{staticClass:\"grid-container2\"},[_c('a',{staticClass:\"mb-0\"},[_vm._v(\"fov: \"+_vm._s(Math.round(this.cam.fov)))]),_c('input',{staticClass:\"w-85\",attrs:{\"type\":\"range\",\"value\":\"cam.fov\",\"min\":\"15\",\"max\":\"120\"},on:{\"mouseup\":_vm.setFov,\"touchend\":_vm.setFov,\"input\":_vm.setFov}})]),_c('div',{staticClass:\"grid-container2\"},[_c('a',{staticClass:\"item1 mb-0\"},[_vm._v(\"duration: \"+_vm._s(this.cam.duration))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.time),expression:\"time\"}],staticClass:\"item2 w-85\",attrs:{\"type\":\"range\",\"min\":\"1\",\"max\":\"120\",\"value\":\"5\"},domProps:{\"value\":(_vm.time)},on:{\"mouseup\":_vm.setTime,\"touchend\":_vm.setTime,\"__r\":function($event){_vm.time=$event.target.value}}})])]),(_vm.cam.type=='Slider' || _vm.cam.type=='Crane')?_c('div',{staticClass:\"mt-1\",staticStyle:{\"margin-left\":\"5px\"}},[_c('a',{staticClass:\"float-start\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.onStartPin}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-location-pin\"}}),_vm._v(\" start\")],1),_c('a',{staticClass:\"float-end\",staticStyle:{\"cursor\":\"pointer\",\"margin-right\":\"15px\"},on:{\"click\":_vm.onEndPin}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-location-dot\"}}),_vm._v(\" stop\")],1)]):_c('div',{staticClass:\"mt-1\",staticStyle:{\"margin-left\":\"5px\"}},[_c('a',{staticClass:\"float-start\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.onStartPin}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-location-pin\"}}),_vm._v(\" start\")],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as THREE from 'three';\r\n\r\nexport class Camera{\r\n static CameraType = {\r\n\t\tFixed: \"Fixed\",\r\n\t\tSlider: \"Slider\",\r\n\t\tCrane: \"Crane\"\r\n }\r\n \r\n constructor()\r\n {\r\n this.type = Camera.CameraType.Fixed;\r\n this.start_transform = new THREE.Matrix4();\r\n this.end_transform = new THREE.Matrix4();\r\n this.fov = 30;\r\n this.duration = 5;\r\n this.time = 0;\r\n this.lookAtTarget = null;\r\n this.camera = this.initCamera(this.fov);\r\n this.active = false;\r\n this.script = (delta)=>{this.update(delta);};\r\n }\r\n\r\n initCamera(fov)\r\n {\r\n const camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 20 );\r\n\t\tcamera.near = 0.01;\r\n\t\tcamera.far = 100;\r\n\t\tcamera.setFocalLength(fov);\r\n\t\tcamera.position.set( 0, 1, 4 );\r\n\t\tcamera.lookAt( 0, 0, 1 );\r\n camera.updateProjectionMatrix()\r\n return camera;\r\n }\r\n setStart(m)\r\n {\r\n this.start_transform.copy(m);\r\n if(this.type==\"Fixed\")\r\n this.setEnd(m);\r\n }\r\n setEnd(m)\r\n {\r\n this.end_transform.copy(m);\r\n }\r\n setLookAtTarget(target)\r\n {\r\n this.lookAtTarget = target;\r\n }\r\n setActive(a)\r\n {\r\n this.active = a;\r\n }\r\n update(delta)\r\n {\r\n if(!this.active) return;\r\n this.time+=delta;\r\n\r\n if(this.time>=this.duration)\r\n this.time = this.duration;//this.time-this.duration;\r\n\r\n var filter = this.time/this.duration\r\n if(this.type==\"Fixed\")\r\n filter = 0;\r\n\r\n const start_position = new THREE.Vector3().setFromMatrixPosition(this.start_transform);\r\n const end_position = new THREE.Vector3().setFromMatrixPosition(this.end_transform);\r\n const start_rotation = new THREE.Euler().setFromRotationMatrix(this.start_transform);\r\n var current_position = start_position.clone();\r\n var current_rotation = start_rotation.clone();\r\n this.camera.rotation.copy(current_rotation);\r\n \r\n if(this.type==\"Slider\")\r\n {\r\n current_position = start_position.clone().multiplyScalar(1-filter).add(end_position.clone().multiplyScalar(filter));\r\n current_rotation = new THREE.Euler().setFromRotationMatrix(this.start_transform);\r\n }\r\n else if(this.type == \"Crane\")\r\n {\r\n let look_target = new THREE.Vector3(0,0,0);\r\n this.lookAtTarget?.getWorldPosition(look_target);\r\n let d1 = start_position.distanceTo(look_target);\r\n let d2 = end_position.distanceTo(look_target);\r\n\r\n var s = start_position.clone().sub(look_target.clone());\r\n var e = end_position.clone().sub(look_target.clone());\r\n var v = s.clone().multiplyScalar(1-filter).add(e.clone().multiplyScalar(filter));\r\n current_position = look_target.clone().add(v.normalize().multiplyScalar(d1*(1-filter)+d2*filter));//start_position.clone().multiplyScalar(1-filter).add(end_position.clone().multiplyScalar(filter));\r\n //current_rotation = new THREE.Euler().setFromRotationMatrix(this.start_transform);\r\n if(this.camera.look_target!=undefined)\r\n look_target.lerp(this.camera.look_target,(1-delta) * 0.95);\r\n this.camera.lookAt(look_target)\r\n this.camera.look_target = look_target;\r\n }\r\n this.camera.position.copy(current_position);\r\n \r\n this.camera.setFocalLength(this.fov);\r\n }\r\n serialize()\r\n {\r\n let output = {\r\n type: this.type,\r\n camera: this.camera.toJSON(),\r\n start_transform: this.start_transform,\r\n end_transform: this.end_transform,\r\n fov: this.fov,\r\n duration: this.duration\r\n }\r\n return output;\r\n }\r\n deserialize(json)\r\n {\r\n this.type = json.type;\r\n var loader = new THREE.ObjectLoader();\r\n this.camera = loader.parse( json.camera);\r\n this.start_transform.fromArray(json.start_transform.elements);\r\n this.end_transform.fromArray(json.end_transform.elements);\r\n this.fov = json.fov;\r\n this.duration = json.duration;\r\n }\r\n \r\n}\r\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CameraCard.vue?vue&type=template&id=6a206435&scoped=true&\"\nimport script from \"./CameraCard.vue?vue&type=script&lang=js&\"\nexport * from \"./CameraCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CameraCard.vue?vue&type=style&index=0&id=6a206435&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a206435\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CameraPanel.vue?vue&type=template&id=80404676&scoped=true&\"\nimport script from \"./CameraPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./CameraPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CameraPanel.vue?vue&type=style&index=0&id=80404676&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"80404676\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fixed-plugin\"},[_c('div',{staticClass:\"shadow-lg card blur\",staticStyle:{\"overflow\":\"auto !important\"}},[_c('div',{staticClass:\"pt-3 pb-0 bg-transparent card-header\"},[_vm._m(0),_c('div',{staticClass:\"mt-4 float-end\",on:{\"click\":_vm.toggle}},[_c('button',{staticClass:\"p-0 btn btn-link text-dark fixed-plugin-close-button\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-close\"}})],1)])]),_c('br'),_c('div',[(this.$store.state.isLoggedIn)?_c('div',[(!this.isRecording)?_c('a',{staticClass:\"btn bg-gradient-dark w-100\",on:{\"click\":_vm.onRec}},[_vm._v(\"Start Recording\")]):_c('a',{staticClass:\"btn bg-gradient-gored w-100\",on:{\"click\":_vm.onRec}},[_vm._v(\"Stop Recording\")]),_c('draggable',_vm._b({staticClass:\"list-group\",attrs:{\"tag\":\"ul\"},on:{\"start\":function($event){_vm.isDragging = true},\"end\":_vm.onDrop},model:{value:(_vm.list),callback:function ($$v) {_vm.list=$$v},expression:\"list\"}},'draggable',_vm.dragOptions,false),[_c('transition-group',{attrs:{\"type\":\"transition\",\"name\":\"flip-list\"}},_vm._l((_vm.list),function(element,index){return _c('ul',{key:element.name,staticClass:\"list-group\"},[_c('li',{staticClass:\"px-0 mb-1 border-0 list-group-item d-flex align-items-center\",staticStyle:{\"cursor\":\"grab\"}},[(!element.playing)?_c('i',{staticStyle:{\"margin-left\":\"10px\",\"cursor\":\"pointer\"},on:{\"touchstart\":function($event){return _vm.onRecId(index,$event)},\"click\":function($event){return _vm.onRecId(index)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-play\"}})],1):_c('i',{staticStyle:{\"margin-left\":\"10px\",\"cursor\":\"pointer\"},on:{\"touchstart\":function($event){return _vm.onRecId(index,$event)},\"click\":function($event){return _vm.onRecId(index)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-stop\"}})],1),_c('i',{staticStyle:{\"width\":\"170px\",\"margin-left\":\"10px\",\"font-size\":\"12px\",\"font-weight\":\"bold\",\"cursor\":\"grab\"}},[_vm._v(_vm._s(element.name))]),_c('i',{staticStyle:{\"margin-left\":\"10px\",\"font-size\":\"12px\",\"cursor\":\"grab\"}},[_vm._v(_vm._s(new Date(element.duration * 1000).toISOString().slice(14, 19)))]),_c('i',{staticStyle:{\"margin-left\":\"auto\",\"margin-right\":\"0px\"}},[_c('i',{staticStyle:{\"cursor\":\"pointer\",\"margin-left\":\"10px\"},on:{\"touchstart\":function($event){return _vm.onDelete(index)},\"click\":function($event){return _vm.onDelete(index)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-trash\"}})],1),_c('i',{staticStyle:{\"cursor\":\"pointer\",\"margin-left\":\"10px\",\"margin-right\":\"10px\"},on:{\"touchstart\":function($event){return _vm.onExport(index)},\"click\":function($event){return _vm.onExport(index)}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-solid fa-cloud-arrow-down\"}})],1)])])])}),0)],1)],1):_vm._e()])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"float-start\"},[_c('h5',{staticClass:\"mt-3 mb-1\"},[_vm._v(\"Recording\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordingPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordingPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RecordingPanel.vue?vue&type=template&id=9683b5e0&scoped=true&\"\nimport script from \"./RecordingPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./RecordingPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RecordingPanel.vue?vue&type=style&index=0&id=9683b5e0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9683b5e0\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App2.vue?vue&type=template&id=5d081d86&\"\nimport script from \"./App2.vue?vue&type=script&lang=js&\"\nexport * from \"./App2.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"ap-northeast-2\",\n \"aws_cognito_identity_pool_id\": \"ap-northeast-2:00874e5c-2217-450a-ac6d-4ad1cf9230be\",\n \"aws_cognito_region\": \"ap-northeast-2\",\n \"aws_user_pools_id\": \"ap-northeast-2_pCCmMMx9s\",\n \"aws_user_pools_web_client_id\": \"41s0q0fu1moipogfkphstfq45o\",\n \"oauth\": {},\n \"aws_cognito_username_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ],\n \"aws_cloud_logic_custom\": [\n {\n \"name\": \"getassets\",\n \"endpoint\": \"https://9b8v7rfue8.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgUserProfile\",\n \"endpoint\": \"https://55pt3fw4fh.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgStoreInventory\",\n \"endpoint\": \"https://6m4tvi6l6g.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"getturnserver\",\n \"endpoint\": \"https://6q31y07y72.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgBuyAsset\",\n \"endpoint\": \"https://3wh8vfrfmg.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgPromocode\",\n \"endpoint\": \"https://7yjn1yn67a.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"prgUpload\",\n \"endpoint\": \"https://329bd5qssl.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgPayment\",\n \"endpoint\": \"https://1fcnn84sml.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgPaymentResponse\",\n \"endpoint\": \"https://ntomxnkq9d.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"name\": \"rpgLicense\",\n \"endpoint\": \"https://twgyqoaim4.execute-api.ap-northeast-2.amazonaws.com/next\",\n \"region\": \"ap-northeast-2\"\n }\n ],\n \"aws_dynamodb_all_tables_region\": \"ap-northeast-2\",\n \"aws_dynamodb_table_schemas\": [\n {\n \"tableName\": \"RPG_UserTable\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"tableName\": \"RPG_Market\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"tableName\": \"RPG_PromocodeMap\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"tableName\": \"RPG_Promocodes\",\n \"region\": \"ap-northeast-2\"\n },\n {\n \"tableName\": \"RPG_License\",\n \"region\": \"ap-northeast-2\"\n }\n ],\n \"aws_user_files_s3_bucket\": \"red-pill-go\",\n \"aws_user_files_s3_bucket_region\": \"ap-northeast-2\"\n};\n\n\nexport default awsmobile;\n","import \"./assets/js/nav-pills.js\";\nimport \"./assets/scss/soft-ui-dashboard.scss\";\n\nexport default {\n install() {},\n};\n","\r\nimport Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport App from './App2.vue'\r\nimport router from './router'\r\nimport VueRouter from 'vue-router';\r\nimport { Amplify } from 'aws-amplify';\r\nimport awsconfig from './aws-exports'; \r\nAmplify.configure(awsconfig);\r\nimport 'vue-spinners/dist/vue-spinners.css'\r\nimport VueSpinners from 'vue-spinners/dist/vue-spinners.common'\r\nimport Loading from 'vue-loading-overlay';\r\nimport 'vue-loading-overlay/dist/vue-loading.css';\r\nimport SoftUIDashboard from \"./soft-ui-dashboard\";\r\nimport {BootstrapVue, IconsPlugin } from 'bootstrap-vue'\r\n// import 'bootstrap/dist/css/bootstrap.css'\r\n import 'bootstrap-vue/dist/bootstrap-vue.css'\r\nimport store from \"./store\";\r\n/* import the fontawesome core */\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\n\r\nimport VuejsDialog from 'vuejs-dialog';\r\n//import VuejsDialogMixin from 'vuejs-dialog/dist/vuejs-dialog-mixin.min.js'; // only needed in custom components\r\n// include the default style\r\nimport 'vuejs-dialog/dist/vuejs-dialog.min.css';\r\n\r\n// Tell Vue to install the plugin.\r\nVue.use(VuejsDialog);\r\nvar PulseLoader = require('vue-spinner/src/PulseLoader.vue');\r\n/* import font awesome icon component */\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\r\n\r\n/* import specific icons */\r\nimport {faGooglePlay } from '@fortawesome/free-brands-svg-icons'\r\nimport {faWindows } from '@fortawesome/free-brands-svg-icons'\r\nimport {faUnity } from '@fortawesome/free-brands-svg-icons'\r\nimport {faUser} from '@fortawesome/free-solid-svg-icons'\r\nimport {faRightToBracket} from '@fortawesome/free-solid-svg-icons'\r\nimport {faGear} from '@fortawesome/free-solid-svg-icons'\r\nimport {faClose} from '@fortawesome/free-solid-svg-icons'\r\nimport {faPerson} from '@fortawesome/free-solid-svg-icons'\r\nimport {faPanorama} from '@fortawesome/free-solid-svg-icons'\r\nimport {faImages} from '@fortawesome/free-solid-svg-icons'\r\nimport {faAngleLeft} from '@fortawesome/free-solid-svg-icons'\r\nimport {faAngleDown} from '@fortawesome/free-solid-svg-icons'\r\nimport {faAngleUp} from '@fortawesome/free-solid-svg-icons'\r\nimport {faPuzzlePiece} from '@fortawesome/free-solid-svg-icons'\r\nimport {faGlobe} from '@fortawesome/free-solid-svg-icons'\r\nimport {faFaceLaugh} from '@fortawesome/free-solid-svg-icons'\r\nimport {faCameraRetro} from '@fortawesome/free-solid-svg-icons'\r\nimport {faRotate} from '@fortawesome/free-solid-svg-icons'\r\nimport {faArrowsUpDownLeftRight} from '@fortawesome/free-solid-svg-icons'\r\nimport {faCompress} from '@fortawesome/free-solid-svg-icons'\r\nimport {faTrash} from '@fortawesome/free-solid-svg-icons'\r\nimport {faPen} from '@fortawesome/free-solid-svg-icons'\r\nimport {faFloppyDisk} from '@fortawesome/free-solid-svg-icons'\r\nimport {faPause} from '@fortawesome/free-solid-svg-icons'\r\nimport {faPlay} from '@fortawesome/free-solid-svg-icons'\r\nimport {faStop} from '@fortawesome/free-solid-svg-icons'\r\nimport {faClone} from '@fortawesome/free-solid-svg-icons'\r\nimport {faVideo} from '@fortawesome/free-solid-svg-icons'\r\nimport {faUpDown} from '@fortawesome/free-solid-svg-icons'\r\nimport {faLocationPin} from '@fortawesome/free-solid-svg-icons'\r\nimport {faLocationDot} from '@fortawesome/free-solid-svg-icons'\r\nimport {faCircleDollarToSlot} from '@fortawesome/free-solid-svg-icons'\r\nimport {faHourglassHalf} from '@fortawesome/free-solid-svg-icons'\r\nimport {faClapperboard} from '@fortawesome/free-solid-svg-icons'\r\nimport {faCloudArrowDown} from '@fortawesome/free-solid-svg-icons'\r\nimport {faUserAstronaut} from '@fortawesome/free-solid-svg-icons'\r\nimport {faUnreal} from \"./components/Icon/UnrealIcon\"\r\nimport {faBook} from '@fortawesome/free-solid-svg-icons'\r\nimport {faTag} from '@fortawesome/free-solid-svg-icons'\r\nimport { faRotateRight } from '@fortawesome/free-solid-svg-icons';\r\n/* add icons to the library */\r\nlibrary.add(faGooglePlay)\r\nlibrary.add(faWindows)\r\nlibrary.add(faUnity)\r\nlibrary.add(faUser)\r\nlibrary.add(faGear)\r\nlibrary.add(faClose)\r\nlibrary.add(faRightToBracket)\r\nlibrary.add(faPerson)\r\nlibrary.add(faPanorama)\r\nlibrary.add(faImages)\r\nlibrary.add(faAngleLeft)\r\nlibrary.add(faAngleDown)\r\nlibrary.add(faAngleUp)\r\nlibrary.add(faRotate)\r\nlibrary.add(faArrowsUpDownLeftRight)\r\nlibrary.add(faCompress)\r\nlibrary.add(faTrash)\r\nlibrary.add(faPen)\r\nlibrary.add(faFloppyDisk)\r\nlibrary.add(faPause)\r\nlibrary.add(faPlay)\r\nlibrary.add(faStop)\r\nlibrary.add(faClone)\r\nlibrary.add(faVideo)\r\nlibrary.add(faUpDown)\r\nlibrary.add(faLocationPin)\r\nlibrary.add(faLocationDot)\r\nlibrary.add(faCircleDollarToSlot)\r\nlibrary.add(faHourglassHalf)\r\nlibrary.add(faClapperboard)\r\nlibrary.add(faCloudArrowDown)\r\nlibrary.add(faUserAstronaut)\r\nlibrary.add(faUnreal);\r\nlibrary.add(faBook);\r\nlibrary.add(faTag);\r\nlibrary.add(faRotateRight)\r\nlibrary.add(faPuzzlePiece)\r\nlibrary.add(faGlobe)\r\nlibrary.add(faCameraRetro)\r\nlibrary.add(faFaceLaugh)\r\n/* add font awesome icon component */\r\nVue.component('font-awesome-icon', FontAwesomeIcon)\r\nVue.use(VueRouter)\r\nVue.use(PulseLoader)\r\nVue.use(VueSpinners)\r\nVue.config.productionTip = false\r\nVue.use(Vuex);\r\nVue.use(Loading)\r\nVue.use(BootstrapVue);\r\nVue.use(IconsPlugin);\r\nVue.mixin({\r\n data: function() \r\n {\r\n return {\r\n logged:true,\r\n \r\n }\r\n }\r\n})\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n SoftUIDashboard,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n\r\n\r\n","import { Auth } from 'aws-amplify';\r\nimport { Signer } from \"@aws-amplify/core\";\r\nimport { Storage} from 'aws-amplify';\r\nimport store from '@/store'\r\n\r\nexport async function getCredentials()\r\n{\r\n return await Auth.currentCredentials();\r\n}\r\nexport async function getS3(path) {\r\n let result;\r\n try{\r\n result = await Storage.get(path,{level:\"public\", download:true});\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n console.log(result);\r\n return URL.createObjectURL(await result.Body.blob());\r\n}\r\n\r\nexport async function getS3File(path, cache = 'default', with_etag = false ) {\r\n let encoded_path = path.replace('+', '%2B').replace('@', '%40').replace(':', '%3A');\r\n const credentials = await Auth.currentCredentials();\r\n const signature = Signer.sign(\r\n {\r\n url: \"https://red-pill-go.s3.ap-northeast-2.amazonaws.com/\"+path,\r\n method: \"GET\",\r\n headers: {\r\n \"x-amz-content-sha256\":\r\n \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\", // this is the SHA256 of an empty string (\"\")\r\n }\r\n },\r\n {\r\n access_key: credentials.accessKeyId,\r\n secret_key: credentials.secretAccessKey,\r\n session_token: credentials.sessionToken\r\n },\r\n { region: \"ap-northeast-2\", service: \"s3\" }\r\n );\r\n try{\r\n var result = await fetch(\"https://red-pill-go.s3.ap-northeast-2.amazonaws.com/\"+encoded_path,\r\n {\r\n cache: cache,\r\n method: \"GET\",\r\n headers : signature.headers\r\n });\r\n if(with_etag)\r\n {\r\n let eTag = result.headers.get('ETag');\r\n eTag = eTag.replace(/['\"]+/g, '');\r\n console.log(eTag);\r\n return [URL.createObjectURL(await result.blob()),eTag];\r\n }\r\n\r\n return URL.createObjectURL(await result.blob());\r\n }catch(e){\r\n console.warn(e);\r\n }\r\n}\r\nexport async function getProtectedS3File(path) {\r\n let encoded_path = path.replace('+', '%2B').replace('@', '%40').replace(':', '%3A');\r\n const credentials = await Auth.currentCredentials();\r\n const signature = Signer.sign(\r\n {\r\n url: \"https://red-pill-go.s3.ap-northeast-2.amazonaws.com/protected/\"+store.state.email+'/'+credentials.identityId+\"/\"+path,\r\n method: \"GET\",\r\n headers: {\r\n \"x-amz-content-sha256\":\r\n \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\" // this is the SHA256 of an empty string (\"\")\r\n }\r\n },\r\n {\r\n access_key: credentials.accessKeyId,\r\n secret_key: credentials.secretAccessKey,\r\n session_token: credentials.sessionToken\r\n },\r\n { region: \"ap-northeast-2\", service: \"s3\" }\r\n );\r\n try{\r\n var result = await fetch(\"https://red-pill-go.s3.ap-northeast-2.amazonaws.com/protected/\"+store.state.email+'/'+credentials.identityId+\"/\"+encoded_path,\r\n {\r\n method: \"GET\",\r\n headers : signature.headers\r\n });\r\n\r\n return URL.createObjectURL(await result.blob());\r\n }catch(e){\r\n console.warn(e);\r\n }\r\n}\r\nexport async function putS3File(path, size) {\r\n const credentials = await Auth.currentCredentials();\r\n const signature = Signer.sign(\r\n {\r\n url: \"https://red-pill-go.s3.ap-northeast-2.amazonaws.com/private/\"+credentials.identityId+\"/\"+path,\r\n method: \"PUT\",\r\n headers: {\r\n \"x-amz-content-sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\", // this is the SHA256 of an empty string (\"\")\r\n \"Content-Length\": size.toString()\r\n }\r\n },\r\n {\r\n access_key: credentials.accessKeyId,\r\n secret_key: credentials.secretAccessKey,\r\n session_token: credentials.sessionToken\r\n },\r\n { region: \"ap-northeast-2\", service: \"s3\" }\r\n );\r\n return signature;\r\n}","module.exports = __webpack_public_path__ + \"img/redpill.975995df.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecordingPanel.vue?vue&type=style&index=0&id=9683b5e0&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"12px\",\"height\":\"12px\",\"viewBox\":\"0 0 46 42\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('title',[_vm._v(\"customer-support\")]),_c('g',{attrs:{\"stroke\":\"none\",\"stroke-width\":\"1\",\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"transform\":\"translate(-1717.000000, -291.000000)\",\"fill\":\"#FFFFFF\",\"fill-rule\":\"nonzero\"}},[_c('g',{attrs:{\"transform\":\"translate(1716.000000, 291.000000)\"}},[_c('g',{attrs:{\"transform\":\"translate(1.000000, 0.000000)\"}},[_c('path',{staticClass:\"color-background\",attrs:{\"d\":\"M45,0 L26,0 C25.447,0 25,0.447 25,1 L25,20 C25,20.379 25.214,20.725 25.553,20.895 C25.694,20.965 25.848,21 26,21 C26.212,21 26.424,20.933 26.6,20.8 L34.333,15 L45,15 C45.553,15 46,14.553 46,14 L46,1 C46,0.447 45.553,0 45,0 Z\",\"opacity\":\"0.59858631\"}}),_c('path',{staticClass:\"color-foreground\",attrs:{\"d\":\"M22.883,32.86 C20.761,32.012 17.324,31 13,31 C8.676,31 5.239,32.012 3.116,32.86 C1.224,33.619 0,35.438 0,37.494 L0,41 C0,41.553 0.447,42 1,42 L25,42 C25.553,42 26,41.553 26,41 L26,37.494 C26,35.438 24.776,33.619 22.883,32.86 Z\"}}),_c('path',{staticClass:\"color-foreground\",attrs:{\"d\":\"M13,28 C17.432,28 21,22.529 21,18 C21,13.589 17.411,10 13,10 C8.589,10 5,13.589 5,18 C5,22.529 8.568,28 13,28 Z\"}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlidesPanel.vue?vue&type=style&index=0&id=61be574a&scoped=true&lang=css&\"","if(!(\"window\" in globalThis))\n\tglobalThis.window = globalThis;\nwindow.sleep = (ms)=>{\n\treturn new Promise(resolve => setTimeout(resolve, ms));\n}\nfunction getOS() {\n\tvar userAgent = window.navigator.userAgent,\n\t\tplatform = window.navigator.platform,\n\t\tmacosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\n\t\twindowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\n\t\tiosPlatforms = ['iPhone', 'iPad', 'iPod'],\n\t\tos = null;\n \n\tif (macosPlatforms.indexOf(platform) !== -1) {\n\t os = 'Mac OS';\n\t} else if (iosPlatforms.indexOf(platform) !== -1) {\n\t os = 'iOS';\n\t} else if (windowsPlatforms.indexOf(platform) !== -1) {\n\t os = 'Windows';\n\t} else if (/Android/.test(userAgent)) {\n\t os = 'Android';\n\t} else if (!os && /Linux/.test(platform)) {\n\t os = 'Linux';\n\t}\n\treturn os;\n}\nwindow.os = getOS();\n \n\nexport function isFullscreen(){\n\tif(window.os=='Mac OS' || window.os=='iOS')\n\t\treturn document.webkitCurrentFullScreenElement!==null\n\telse if(window.os=='Windows' || window.os=='Android')\n\t\treturn document.fullscreenElement!==null;\n\telse\n\t\treturn screen.width==window.innerWidth && screen.height==window.innerHeight;\n}\n\nexport function withoutExtension(filename){\n\treturn filename.split('.').slice(0, -1).join('.');\n}\t\nexport function getExtension(filename){\n\treturn filename.split('.').pop();\n}\nexport function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport class Animator{\n\tconstructor(fps){\n\t\tif(fps !== undefined)\n\t\t\tthis.at(fps);\n\t\tthis.start = Date.now();\n\t}\n\tanimate(func){\n\t\trequestAnimationFrame(()=>{this.animate(func);});\n\t\tif(this.mspf !== undefined){\n\t\t\tvar now = Date.now();\n\t\t\tvar elapsed = now - this.start;\n\t\t\tif(elapsed > this.mspf) {\n\t\t\t\tthis.start = now - (elapsed % this.mspf);\n\t\t\t\tfunc();\n\t\t\t}\n\t\t}\n\t\telse{\n\t\t\tfunc();\n\t\t}\n\t\treturn this;\n\t}\n\tat(fps){\n\t\tthis.mspf = 1000/fps;\n\t}\n}\n\nexport function Stopwatch(sec = true){\n\tvar init;\n\tvar start;\n\tvar time_fn;\n\ttime_fn = sec ? ()=>{return Date.now()/1000} : ()=>{return Date.now()};\n\tvar self = {\n\t\tstart: ()=>{\n\t\t\tinit = time_fn();\n\t\t\tstart = init;\n\t\t\treturn self;\n\t\t},\n\t\tlap: ()=>{\n\t\t\tvar now = time_fn();\n\t\t\tvar delta = now-start;\n\t\t\tstart = now;\n\t\t\treturn delta;\n\t\t},\n\t\ttime: ()=>{\n\t\t\tvar now = time_fn();\n\t\t\tvar delta = now-init;\n\t\t\treturn delta;\n\t\t}\n\t}\n\treturn self;\n}\nexport function timeit(fn, number=10000){\n\tlet start = Date.now();\n\tfor(let i=0; i{fn();})();\n\treturn (Date.now()-start)/1000/number;\n}\n//fill\nMath.clamp = function(mid, min, max){\n\treturn Math.min(Math.max(min,mid),max);\n}\nMath.lerp = function (a, b, p) {\n\treturn a + (b - a) * p;\n};\nMath.random = (()=>{\n\tlet random = Math.random;\n\treturn function(min, max){\n\t\tif(max===undefined){\n\t\t\tif(min===undefined){\n\t\t\t\treturn random();\n\t\t\t}\n\t\t\telse{\n\t\t\t\tmax = min;//single argument, treat min as max\n\t\t\t\treturn random()*max;\n\t\t\t}\n\t\t}\n\t\telse{\n\t\t\treturn random()*(max-min)+min;\n\t\t}\n\t}\n})();\nMath.randomInt = function(min, max){\n\treturn Math.floor(Math.random(min, max+1))|0;//+1 for including max\n}\nObject.defineProperty(Array.prototype, \"last\", {\n\tget: function last(){\n\t\treturn this[this.length-1];\n\t}\n});\nObject.defineProperty(Array.prototype, \"first\", {\n\tget: function first(){\n\t\treturn this[0];\n\t}\n});\n\nexport function has_param(key){\n\treturn new URL(window.location.href).searchParams.has(key);\n}\nexport function get_param(key){\n\treturn new URL(window.location.href).searchParams.get(key);\n}\n\nexport function readTextFile(file, callback) {\n var rawFile = new XMLHttpRequest();\n rawFile.overrideMimeType(\"application/json\");\n rawFile.open(\"GET\", file, true);\n rawFile.onreadystatechange = function() {\n if (rawFile.readyState === 4 && rawFile.status == \"200\") {\n callback(rawFile.responseText);\n }\n }\n rawFile.send(null);\n}\n\n\n\n","import * as THREE from 'three';\r\n\r\nexport const ikRig = {\r\n root_pos: new THREE.Vector3(),\r\n root_rot: new THREE.Quaternion(),\r\n l_hand_rot: new THREE.Quaternion(),\r\n r_hand_rot: new THREE.Quaternion(),\r\n l_foot_rot: new THREE.Quaternion(),\r\n r_foot_rot: new THREE.Quaternion(),\r\n l_arm_direction: new THREE.Vector3(),\r\n l_arm_pole: new THREE.Vector3(),\r\n l_arm_len: 0.0,\r\n r_arm_direction: new THREE.Vector3(),\r\n r_arm_pole: new THREE.Vector3(),\r\n r_arm_len: 0.0,\r\n l_leg_direction: new THREE.Vector3(),\r\n l_leg_pole: new THREE.Vector3(),\r\n l_leg_len: 0,\r\n r_leg_direction: new THREE.Vector3(),\r\n r_leg_pole: new THREE.Vector3(),\r\n r_leg_len: 0,\r\n spine_direction: new THREE.Vector3(),\r\n spine_pole: new THREE.Vector3(),\r\n spine_len: 0,\r\n neck_direction: new THREE.Vector3(),\r\n neck_pole: new THREE.Vector3(),\r\n neck_len: 0,\r\n l_thumb_direction: new THREE.Vector3(),\r\n l_thumb_len: 0,\r\n r_thumb_direction: new THREE.Vector3(),\r\n r_thumb_len: 0,\r\n l_index_direction: new THREE.Vector3(),\r\n l_index_len: 0,\r\n r_index_direction: new THREE.Vector3(),\r\n r_index_len: 0,\r\n l_middle_direction: new THREE.Vector3(),\r\n l_middle_len: 0,\r\n r_middle_direction: new THREE.Vector3(),\r\n r_middle_len: 0,\r\n l_ring_direction: new THREE.Vector3(),\r\n l_ring_len: 0,\r\n r_ring_direction: new THREE.Vector3(),\r\n r_ring_len: 0,\r\n l_pinky_direction: new THREE.Vector3(),\r\n l_pinky_len: 0,\r\n r_pinky_direction: new THREE.Vector3(),\r\n r_pinky_len: 0,\r\n height: 0\r\n}","import * as THREE from 'three';\r\nimport * as THREE_VRM from '@pixiv/three-vrm';\r\nimport {ikRig} from '@/ikRig.js';\r\n\r\nexport class SourceSkeleton{\r\n\tstatic parents = [\r\n\t\t-1,0,1,2,0,4,5,0,7,8,9,10,9,12,13,14,9,16,17,18,3,6,\r\n\t\t19,22,23,24,19,26,27,28,19,30,31,32,19,34,35,36,19,38,39,40,\r\n\t\t15,42,43,44,15,46,47,48,15,50,51,52,15,54,55,56,15,58,59,60 \r\n\t];\r\n\tstatic bone_names = [\r\n\t\t\"Hip\",\"RHip\",\"RKnee\",\"RAnkle\",\"LHip\",\"LKnee\",\"LAnkle\",\"Spine\",\"Spine1\",\"Spine2\",\"Neck\",\"Head\",\r\n\t\t\"LShoulder\",\"LArm\",\"LForeArm\",\"LWrist\",\"RShoulder\",\"RArm\",\"RForeArm\",\"RWrist\",\"RToe\",\"LToe\",\r\n\t\t\"RightThumb1\",\"RightThumb2\",\"RightThumb3\",\"RightThumb4\",\"RightIndex1\",\"RightIndex2\",\"RightIndex3\",\"RightIndex4\",\r\n\t\t\"RightMiddle1\",\"RightMiddle2\",\"RightMiddle3\",\"RightMiddle4\",\"RightRing1\",\"RightRing2\",\"RightRing3\",\"RightRing4\",\r\n\t\t\"RightPinky1\",\"RightPinky2\",\"RightPinky3\",\"RightPinky4\",\"LeftThumb1\",\"LeftThumb2\",\"LeftThumb3\",\"LeftThumb4\",\r\n\t\t\"LeftIndex1\",\"LeftIndex2\",\"LeftIndex3\",\"LeftIndex4\",\"LeftMiddle1\",\"LeftMiddle2\",\"LeftMiddle3\",\"LeftMiddle4\",\r\n\t\t\"LeftRing1\",\"LeftRing2\",\"LeftRing3\",\"LeftRing4\",\"LeftPinky1\",\"LeftPinky2\",\"LeftPinky3\",\"LeftPinky4\"\r\n\t];\r\n\tstatic getNames(){return SourceSkeleton.bone_names;}\r\n\tstatic bone_map = {\r\n\t\tHips : 0,\r\n\t\tRightUpperLeg : 1,\r\n\t\tRightLowerLeg : 2,\r\n\t\tRightFoot : 3,\r\n\t\tLeftUpperLeg : 4,\r\n\t\tLeftLowerLeg : 5,\r\n\t\tLeftFoot : 6,\r\n\t\tSpine : 7,\r\n\t\tChest : 8,\r\n\t\tUpperChest : 9,\r\n\t\tNeck : 10,\r\n\t\tHead : 11,\r\n\t\tLeftShoulder : 12,\r\n\t\tLeftUpperArm : 13,\r\n\t\tLeftLowerArm : 14,\r\n\t\tLeftHand : 15,\r\n\t\tRightShoulder : 16,\r\n\t\tRightUpperArm : 17,\r\n\t\tRightLowerArm : 18,\r\n\t\tRightHand : 19,\r\n\t\tRightToes : 20,\r\n\t\tLeftToes : 21,\r\n\t\tRightThumbProximal : 22,\r\n\t\tRightThumbIntermediate : 23,\r\n\t\tRightThumbDistal : 24,\r\n\t\tRightIndexProximal : 25,\r\n\t\tRightIndexIntermediate : 26,\r\n\t\tRightIndexDistal : 27,\r\n\t\tRightMiddleProximal : 28,\r\n\t\tRightMiddleIntermediate : 29,\r\n\t\tRightMiddleDistal : 30,\r\n\t\tRightRingProximal : 31,\r\n\t\tRightRingIntermediate : 32,\r\n\t\tRightRingDistal : 33,\r\n\t\tRightLittleProximal : 34,\r\n\t\tRightLittleIntermediate : 35,\r\n\t\tRightLittleDistal : 36,\r\n\t\tLeftThumbProximal : 37,\r\n\t\tLeftThumbIntermediate : 38,\r\n\t\tLeftThumbDistal : 39,\r\n\t\tLeftIndexProximal : 40,\r\n\t\tLeftIndexIntermediate : 41,\r\n\t\tLeftIndexDistal : 42,\r\n\t\tLeftMiddleProximal : 43,\r\n\t\tLeftMiddleIntermediate : 44,\r\n\t\tLeftMiddleDistal : 45,\r\n\t\tLeftRingProximal : 46,\r\n\t\tLeftRingIntermediate : 47,\r\n\t\tLeftRingDistal : 48,\r\n\t\tLeftLittleProximal : 49,\r\n\t\tLeftLittleIntermediate : 50,\r\n\t\tLeftLittleDistal : 51,\r\n\t\tNone : 61\r\n\t};\r\n\r\n\tstatic vp_bone_map = {\r\n\t\tHip : 0,\r\n\t\tRHip : 1,\r\n\t\tRKnee : 2,\r\n\t\tRAnkle : 3,\r\n\t\tLHip : 4,\r\n\t\tLKnee : 5,\r\n\t\tLAnkle : 6,\r\n\t\tSpine : 7,\r\n\t\tSpine1 : 8,\r\n\t\tSpine2 : 9,\r\n\t\tNeck : 10,\r\n\t\tHead : 11,\r\n\t\tLShoulder : 12,\r\n\t\tLArm : 13,\r\n\t\tLForeArm : 14,\r\n\t\tLWrist : 15,\r\n\t\tRShoulder : 16,\r\n\t\tRArm : 17,\r\n\t\tRForeArm : 18,\r\n\t\tRWrist : 19,\r\n\t\tRToe : 20,\r\n\t\tLToe : 21,\r\n\t\tRightThumb1 : 22,\r\n\t\tRightThumb2 : 23,\r\n\t\tRightThumb3 : 24,\r\n\t\tRightThumb4 : 25,\r\n\t\tRightIndex1 : 26,\r\n\t\tRightIndex2 : 27,\r\n\t\tRightIndex3 : 28,\r\n\t\tRightIndex4 : 29,\r\n\t\tRightMiddle1 : 30,\r\n\t\tRightMiddle2 : 31,\r\n\t\tRightMiddle3 : 32,\r\n\t\tRightMiddle4 : 33,\r\n\t\tRightRing1 : 34,\r\n\t\tRightRing2 : 35,\r\n\t\tRightRing3 : 36,\r\n\t\tRightRing4 : 37,\r\n\t\tRightPinky1 : 38,\r\n\t\tRightPinky2 : 39,\r\n\t\tRightPinky3 : 40,\r\n\t\tRightPinky4 : 41,\r\n\t\tLeftThumb1 : 42,\r\n\t\tLeftThumb2 : 43,\r\n\t\tLeftThumb3 : 44,\r\n\t\tLeftThumb4 : 45,\r\n\t\tLeftIndex1 : 46,\r\n\t\tLeftIndex2 : 47,\r\n\t\tLeftIndex3 : 48,\r\n\t\tLeftIndex4 : 49,\r\n\t\tLeftMiddle1 : 50,\r\n\t\tLeftMiddle2 : 51,\r\n\t\tLeftMiddle3 : 52,\r\n\t\tLeftMiddle4 : 53,\r\n\t\tLeftRing1 : 54,\r\n\t\tLeftRing2 : 55,\r\n\t\tLeftRing3 : 56,\r\n\t\tLeftRing4 : 57,\r\n\t\tLeftPinky1 : 58,\r\n\t\tLeftPinky2 : 59,\r\n\t\tLeftPinky3 : 60,\r\n\t\tLeftPinky4 : 61\r\n \r\n\t}\r\n\tstatic mirrorMap = [\t\r\n\t\t0,4,5,6,1,2,3,7,8,9,10,11,16,17,18,19,12,13,\r\n\t\t14,15,21,20,42,43,44,45,46,47,48,49,50,51,52,\r\n\t\t53,54,55,56,57,58,59,60,61,22,23,24,25,26,27,\r\n\t\t28,29,30,31,32,33,34,35,36,37,38,39,40,41\r\n\t]\r\n\r\n\t\r\n\tstatic getBones(){\r\n\t\tconst positions = [];\r\n\t\tpositions.push(new THREE.Vector3(0,0.8,0));//0\r\n\t\tpositions.push(new THREE.Vector3(-0.12,0,0));//1\r\n\t\tpositions.push(new THREE.Vector3(-0,-0.4,0));//2\r\n\t\tpositions.push(new THREE.Vector3(-0,-0.34,0));//3\r\n\t\tpositions.push(new THREE.Vector3(0.12,0,0));//4\r\n\t\tpositions.push(new THREE.Vector3(-0,-0.4,0));//5\r\n\t\tpositions.push(new THREE.Vector3(-0,-0.34,0));//6\r\n\t\tpositions.push(new THREE.Vector3(-0,0,0));//7\r\n\t\tpositions.push(new THREE.Vector3(-0,0.27,0));//8\r\n\t\tpositions.push(new THREE.Vector3(-0,0.27,0));//9\r\n\t\tpositions.push(new THREE.Vector3(-0,0,0));//10\r\n\t\tpositions.push(new THREE.Vector3(-0,0.22,0));//11\r\n\t\tpositions.push(new THREE.Vector3(-0,0.0,0));//12\r\n\t\tpositions.push(new THREE.Vector3(0.17,0,0));//13\r\n\t\tpositions.push(new THREE.Vector3(0.28,0,0));//14\r\n\t\tpositions.push(new THREE.Vector3(0.25,0,0));//15\r\n\t\tpositions.push(new THREE.Vector3(-0,0,0));//16\r\n\t\tpositions.push(new THREE.Vector3(-0.17,0,0));//17\r\n\t\tpositions.push(new THREE.Vector3(-0.28,0,0));//18\r\n\t\tpositions.push(new THREE.Vector3(-0.25,0,0));//19\r\n\t\tpositions.push(new THREE.Vector3(-0,0,0.15));//20\r\n\t\tpositions.push(new THREE.Vector3(-0,0,0.15));//21\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(-0.7405, -0.3218, 0.5900).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(-0.7746, -0.4472, 0.4472).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-0.7746, -0.4472, 0.4472).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-0.7746, -0.4472, 0.4472).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(-0.9662, -0.0392, 0.2548).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(-0.9774, -0.0189, -0.2106).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(-0.8965, -0.0368, -0.4415).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, -0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, -0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(-1.0000, -0.0000, -0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(0.7405, -0.3218, 0.5900).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(0.7746, -0.4472, 0.4472).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(0.7746, -0.4472, 0.4472).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(0.7746, -0.4472, 0.4472).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(0.9662, -0.0392, 0.2548).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(0.9774, -0.0189, -0.2106).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, 0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\tpositions.push(new THREE.Vector3(0.8965, -0.0368, -0.4415).multiplyScalar(0.06));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, -0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, -0.0000).multiplyScalar(0.02));\r\n\t\tpositions.push(new THREE.Vector3(1.0000, -0.0000, -0.0000).multiplyScalar(0.02));\r\n\t\r\n\t\t// const names = Object.keys(SourceSkeleton.bone_map);\r\n\t\tconst bones = [];\r\n\t\tfor(let i=0; i0)\r\n\t\t\t\tname = found[0].data;\r\n\t\t\telse//found.length==0\r\n\t\t\t\tname = map[i][1];\r\n\t\t\tif(name!=\"\")\r\n\t\t\t{\r\n\t\t\t\tlet child = object.getObjectByName( name );\r\n\t\t\t\tif(child!=undefined && found.length>0 && found[0].rotation!=undefined )\r\n\t\t\t\t{\r\n\t\t\t\t\tchild.setRotationFromQuaternion(new THREE.Quaternion(found[0].rotation.x,-found[0].rotation.y,-found[0].rotation.z,found[0].rotation.w));\r\n\t\t\t\t}\r\n\t\t\t\tbones.push(child);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tbones.push(undefined);\r\n\t\t}\r\n\t\treturn bones;\r\n\t}\r\n\tstatic getBones(object, jdata){\r\n\t\treturn GeneralSkeleton.getBonesForMap(object, jdata, Object.entries(GeneralSkeleton.bone_map));\r\n\t}\r\n}\r\n\r\nexport class Wolf3DSkeleton{\r\n\tstatic bone_map = {\r\n\t\tHips: \"Hips\",\r\n\t\tRightUpperLeg: \"RightUpperLeg\",\r\n\t\tRightLowerLeg: \"RightLowerLeg\",\r\n\t\tRightFoot: \"RightFoot\",\r\n\t\tLeftUpperLeg: \"LeftUpperLeg\",\r\n\t\tLeftLowerLeg: \"LeftLowerLeg\",\r\n\t\tLeftFoot: \"LeftFoot\",\r\n\t\tSpine: \"Spine\",\r\n\t\tChest: \"Spine1\",\r\n\t\tUpperChest: \"Spine3\",\r\n\t\tNeck: \"Neck\",\r\n\t\tHead: \"Head\",\r\n\t\tLeftShoulder: \"LeftShoulder\",\r\n\t\tLeftUpperArm: \"LeftUpperArm\",\r\n\t\tLeftLowerArm: \"LeftLowerArm\",\r\n\t\tLeftHand: \"LeftHand\",\r\n\t\tRightShoulder: \"RightShoulder\",\r\n\t\tRightUpperArm: \"RightUpperArm\",\r\n\t\tRightLowerArm: \"RightLowerArm\",\r\n\t\tRightHand: \"RightHand\",\r\n\t\tRightToes: \"RightToe\",\r\n\t\tLeftToes: \"LeftToe\",\r\n\t\tRightThumbProximal : \t\t\"RightHandThumb1\",\r\n\t\tRightThumbIntermediate : \t\"RightHandThumb2\",\r\n\t\tRightThumbDistal : \t\t\t\"RightHandThumb3\",\r\n\t\tRightIndexProximal : \t\t\"RightHandIndex1\",\r\n\t\tRightIndexIntermediate : \t\"RightHandIndex2\",\r\n\t\tRightIndexDistal : \t\t\t\"RightHandIndex3\",\r\n\t\tRightMiddleProximal : \t\t\"RightHandMiddle1\",\r\n\t\tRightMiddleIntermediate : \t\"RightHandMiddle2\",\r\n\t\tRightMiddleDistal : \t\t\"RightHandMiddle3\",\r\n\t\tRightRingProximal : \t\t\"RightHandRing1\",\r\n\t\tRightRingIntermediate : \t\"RightHandRing2\",\r\n\t\tRightRingDistal : \t\t\t\"RightHandRing3\",\r\n\t\tRightLittleProximal : \t\t\"RightHandPinky1\",\r\n\t\tRightLittleIntermediate : \t\"RightHandPinky2\",\r\n\t\tRightLittleDistal : \t\t\"RightHandPinky3\",\r\n\t\tLeftThumbProximal : \t\t\"LeftHandThumb1\",\r\n\t\tLeftThumbIntermediate : \t\"LeftHandThumb2\",\r\n\t\tLeftThumbDistal : \t\t\t\"LeftHandThumb3\",\r\n\t\tLeftIndexProximal : \t\t\"LeftHandIndex1\",\r\n\t\tLeftIndexIntermediate : \t\"LeftHandIndex2\",\r\n\t\tLeftIndexDistal : \t\t\t\"LeftHandIndex3\",\r\n\t\tLeftMiddleProximal : \t\t\"LeftHandMiddle1\",\r\n\t\tLeftMiddleIntermediate : \t\"LeftHandMiddle2\",\r\n\t\tLeftMiddleDistal : \t\t\t\"LeftHandMiddle3\",\r\n\t\tLeftRingProximal : \t\t\t\"LeftHandRing1\",\r\n\t\tLeftRingIntermediate : \t\t\"LeftHandRing2\",\r\n\t\tLeftRingDistal : \t\t\t\"LeftHandRing3\",\r\n\t\tLeftLittleProximal : \t\t\"LeftHandPinky1\",\r\n\t\tLeftLittleIntermediate : \t\"LeftHandPinky2\",\r\n\t\tLeftLittleDistal : \t\t\t\"LeftHandPinky3\"\r\n\t};\r\n\tstatic getBones(object, jdata){\r\n\t\treturn GeneralSkeleton.getBonesForMap(object, jdata, Object.entries(Wolf3DSkeleton.bone_map));\r\n\t}\r\n}\r\n\r\nexport class VRMSkeleton{\r\n\tstatic morph_map = {\r\n\t\t\"aa\":1,\r\n\t\t\"ee\":2,\r\n\t\t\"ih\":3,\r\n\t\t\"oh\":4,\r\n\t\t\"ou\":5,\r\n\t\t\"blink\":12,\r\n\t\t\"happy\":13,\r\n\t\t\"sad\":14,\r\n\t\t\"angry\":15,\r\n\t\t\"Suprise\":16,\r\n\t};\r\n\tstatic bone_map = {\r\n\t\t[THREE_VRM.VRMHumanBoneName.Hips ]: 0 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightUpperLeg ]: 1 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightLowerLeg ]: 2 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightFoot ]: 3 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftUpperLeg ]: 4 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftLowerLeg ]: 5 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftFoot ]: 6 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.Spine ]: 7 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.Chest ]: 8 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.UpperChest ]: 9 ,\r\n\t\t[THREE_VRM.VRMHumanBoneName.Neck ]: 10,\r\n\t\t[THREE_VRM.VRMHumanBoneName.Head ]: 11,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftShoulder ]: 12,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftUpperArm ]: 13,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftLowerArm ]: 14,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftHand ]: 15,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightShoulder ]: 16,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightUpperArm ]: 17,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightLowerArm ]: 18,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightHand ]: 19,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightToes ]: 20,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftToes ]: 21,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightThumbMetacarpal ]: 22,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightThumbProximal ]: 23,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightThumbDistal ]: 24,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightIndexProximal ]: 25,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightIndexIntermediate ]: 26,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightIndexDistal ]: 27,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightMiddleProximal ]: 28,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightMiddleIntermediate]: 29,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightMiddleDistal ]: 30,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightRingProximal ]: 31,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightRingIntermediate ]: 32,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightRingDistal ]: 33,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightLittleProximal ]: 34,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightLittleIntermediate]: 35,\r\n\t\t[THREE_VRM.VRMHumanBoneName.RightLittleDistal ]: 36,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftThumbMetacarpal ]: 37,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftThumbProximal ]: 38,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftThumbDistal ]: 39,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftIndexProximal ]: 40,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftIndexIntermediate ]: 41,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftIndexDistal ]: 42,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftMiddleProximal ]: 43,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftMiddleIntermediate ]: 44,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftMiddleDistal ]: 45,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftRingProximal ]: 46,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftRingIntermediate ]: 47,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftRingDistal ]: 48,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftLittleProximal ]: 49,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftLittleIntermediate ]: 50,\r\n\t\t[THREE_VRM.VRMHumanBoneName.LeftLittleDistal ]: 51\r\n\t};\r\n\r\n\tstatic getBones(vrm){\r\n\t\tconst ret = []\r\n\t\tfor(let [map, to] of Object.entries(VRMSkeleton.bone_map))\r\n\t\t\tret[to] = vrm.humanoid.getNormalizedBoneNode(map);\r\n\t\treturn ret;\r\n\t}\r\n\tstatic getRawBones(vrm){\r\n\t\tconst ret = []\r\n\t\tfor(let [map, to] of Object.entries(VRMSkeleton.bone_map))\r\n\t\t\tret[to] = vrm.humanoid.getRawBoneNode(map);\r\n\t\treturn ret;\r\n\t}\r\n}\r\n\r\nexport class Retargeter{\r\n\t/*\r\n\tbones:\r\n\t\tarray of bones from target character\r\n\r\n\tMaybe replace with a Skeleton class or something\r\n\t*/\r\n\tconstructor(bones){\r\n\t\tthis.source_bones = SourceSkeleton.getBones();\r\n\t\tthis.source_tpose_rotations = this.source_bones.map(()=>{\r\n\t\t\treturn new THREE.Quaternion()\r\n\t\t});\r\n\t\tthis.ikRig = ikRig;\r\n\t\tthis.chains = [];\r\n\t\tthis.ikRig_solved = [];\r\n\t\tthis.ikRig_poles = [];\r\n\t\tif(bones!==undefined)\r\n\t\t\tthis.scanBones(bones);\r\n\t}\r\n\tscanBones(bones){\r\n\t\t[\r\n\t\t\tthis.target_root, \r\n\t\t\tthis.target_bones, \r\n\t\t\tthis.tpose_rotations, \r\n\t\t\tthis.target_hip_height,\r\n\t\t\tthis.scene\r\n\t\t] = this._scanBones(bones);\r\n\t}\r\n\t\r\n\t_scanBones(bones){\r\n\t\tconst target_bones = [\r\n\t\t\tbones[SourceSkeleton.bone_map.Hips],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightUpperLeg],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightLowerLeg],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightFoot],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftUpperLeg],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftLowerLeg],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftFoot],\r\n\t\t\tbones[SourceSkeleton.bone_map.Spine],\r\n\t\t\tbones[SourceSkeleton.bone_map.Chest],\r\n\t\t\tbones[SourceSkeleton.bone_map.UpperChest],\r\n\t\t\tbones[SourceSkeleton.bone_map.Neck],\r\n\t\t\tbones[SourceSkeleton.bone_map.Head],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftShoulder],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftUpperArm],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftLowerArm],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftHand],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightShoulder],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightUpperArm],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightLowerArm],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightHand],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightToes],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftToes],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightThumbProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightThumbIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightThumbDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.RightIndexProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightIndexIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightIndexDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.RightMiddleProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightMiddleIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightMiddleDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.RightRingProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightRingIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightRingDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.RightLittleProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightLittleIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.RightLittleDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftThumbProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftThumbIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftThumbDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftIndexProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftIndexIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftIndexDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftMiddleProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftMiddleIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftMiddleDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftRingProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftRingIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftRingDistal],\r\n\t\t\tundefined,\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftLittleProximal],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftLittleIntermediate],\r\n\t\t\tbones[SourceSkeleton.bone_map.LeftLittleDistal],\r\n\t\t\tundefined,\r\n\t\t];\r\n\r\n\t\tlet target_root = target_bones[0];\r\n\t\tlet scene = null;\r\n\t\tlet parent = target_bones[0].parent;\r\n\t\twhile (parent !== null) {\r\n\t\t\tif (parent instanceof THREE.Scene) {\r\n\t\t\t\tscene = parent;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tparent = parent.parent;\r\n\t\t}\r\n\r\n\t\twhile(target_root.parent && target_root.parent.type!=\"Scene\")\r\n\t\t\ttarget_root=target_root.parent;\r\n\r\n\t\tconst root_rotation_invert=target_root.getWorldQuaternion(new THREE.Quaternion()).clone().invert();\r\n\t\tconst tpose_rotations = target_bones.map((bone)=>{\r\n\t\t\treturn bone ? \r\n\t\t\t\troot_rotation_invert.clone().multiply(bone.getWorldQuaternion(new THREE.Quaternion())) : \r\n\t\t\t\tnew THREE.Quaternion();\r\n\t\t});\r\n\t\t//const scale = target_root.getWorldScale(new THREE.Vector3());\r\n\t\tconst target_hip_height = bones[0].getWorldPosition(new THREE.Vector3()).y;//this.getHipHeight(target_bones, false);///scale.y/target_root.scale.y;\r\n\t\treturn [target_root, target_bones, tpose_rotations, target_hip_height, scene];\r\n\t}\r\n\r\n\tgetHipHeight(bones, manual=true){\r\n\t\tconst Root = bones[0].getWorldPosition(new THREE.Vector3());\r\n\t\tconst LeftUpperLeg = bones[1].getWorldPosition(new THREE.Vector3());\r\n\t\tconst LeftLowerLeg = bones[2].getWorldPosition(new THREE.Vector3());\r\n\t\tconst LeftFoot = bones[3].getWorldPosition(new THREE.Vector3());\r\n\t\tconst RightUpperLeg = bones[4].getWorldPosition(new THREE.Vector3());\r\n\t\tconst HipMid = RightUpperLeg.clone().add(LeftUpperLeg).multiplyScalar(0.5);\r\n\t\tconst foot = manual ? 0.10 : LeftFoot.y;\r\n\t\treturn LeftUpperLeg.distanceTo(LeftLowerLeg) + LeftLowerLeg.distanceTo(LeftFoot) + HipMid.distanceTo(Root) + foot;\r\n\t}\r\n\r\n\tsetIKRig(ikrig)\r\n\t{\r\n\t\tthis.ikRig = ikrig;\r\n\t\t//console.log(ikrig);\r\n\t}\r\n\r\n\tsetRotations(rotations){\r\n\t\tthis.ikRig.height = 0;\r\n\t\tfor(let i=0; i this.target_bones[item] !== undefined);\r\n\t\tif(bone_chain.length==0) return;\r\n\t\tif(bone_chain.length==1)\r\n\t\t{\r\n\t\t\tlet rot = new THREE.Quaternion();\r\n\t\t\trot.setFromRotationMatrix(new THREE.Matrix4().lookAt(direction.clone().normalize(), new THREE.Vector3(), pole));\r\n\t\t\tconst qrot = rot.clone().multiply(rotation_offset).multiply(this.tpose_rotations[bone_chain[0]]);\r\n\t\t\tlet root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\tthis.target_bones[bone_chain[0]]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t);\r\n\t\t\tlet q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t\tthis.target_bones[bone_chain[0]]?.rotation.setFromQuaternion(q2);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet target_chain_len = 0;\r\n\t\tlet sections = []\r\n\t\tlet finger_tip = 1;\r\n\t\tif(middle == SourceSkeleton.bone_map.Chest || middle == SourceSkeleton.bone_map.Neck)\r\n\t\t\tfinger_tip = 0;\r\n\t\tfor(let i=1; i < bone_chain.length+finger_tip; i++)\r\n\t\t{\r\n\t\t\r\n\t\t\tif(i==bone_chain.length)\r\n\t\t\t\ttarget_chain_len+=this.target_bones[bone_chain[i-2]].getWorldPosition(new THREE.Vector3()).distanceTo(this.target_bones[bone_chain[i-1]].getWorldPosition(new THREE.Vector3()));\r\n\t\t\telse\r\n\t\t\t\ttarget_chain_len+=this.target_bones[bone_chain[i-1]].getWorldPosition(new THREE.Vector3()).distanceTo(this.target_bones[bone_chain[i]].getWorldPosition(new THREE.Vector3()));\r\n\t\t\tsections.push(target_chain_len);\r\n\t\t}\r\n\r\n\t\tconst target_chain_root = this.target_bones[bone_chain[0]].getWorldPosition(new THREE.Vector3());\r\n\t\t//const target_chain_mid = this.target_bones[middle].getWorldPosition(new THREE.Vector3());\r\n\t\t//const target_chain_end = this.target_bones[end].getWorldPosition(new THREE.Vector3());\r\n\r\n\r\n\t\tconst src_chain_len = direction.length();\r\n\t\t// const target_chain_len =\r\n\t\t// \ttarget_chain_root.distanceTo(target_chain_mid) +\r\n\t\t// \ttarget_chain_mid.distanceTo(target_chain_end) +\r\n\t\t// \ttarget_chain_mid.distanceTo(target_chain_end);\r\n\t\tconst chain_ratio = src_chain_len / length;\r\n\t\tconst dir = direction.clone().normalize();\r\n\t\tconst end_effector = target_chain_root.clone().add(dir.clone().multiplyScalar(target_chain_len * chain_ratio));\r\n\t\t\r\n\t\t//const root_rot = new THREE.Quaternion();\r\n\t\t//const mid_rot = new THREE.Quaternion();\r\n\t\t//const end_rot = new THREE.Quaternion();\r\n\t\t//this.chains.push(target_chain_root);\r\n\t\t//this.chains.push(end_effector);\r\n\t\tconst s = 0.43 * Math.sqrt(Math.abs(target_chain_len * target_chain_len - end_effector.distanceToSquared(target_chain_root)));\r\n\r\n\t\t//this.ikRig_poles.push(target_chain_root.clone().add(end_effector).multiplyScalar(0.5));\r\n\t\t//this.ikRig_poles.push(target_chain_root.clone().add(end_effector).multiplyScalar(0.5).add(pole.clone().normalize().multiplyScalar(0.3*target_chain_len)));\r\n\r\n\t\t//const root_end = this.sampleParabola(target_chain_root, end_effector, s, this.target_bones[middle].position.length() / target_chain_len, pole);\r\n\t\t//const mid_end = this.sampleParabola(target_chain_root, end_effector, s, (this.target_bones[middle].position.length() + this.target_bones[end].position.length()) / target_chain_len, pole);\r\n\t\t//const end_end = this.sampleParabola(target_chain_root, end_effector, s, (this.target_bones[middle].position.length() + this.target_bones[end].position.length() * 2) / target_chain_len, pole);\r\n\t\tfor(let i=0; i < sections.length; i++)\r\n\t\t{\r\n\t\t\tlet pole_vector = new THREE.Vector3(0, 0, -1);\r\n\t\t\t\r\n\t\t\tif(root == SourceSkeleton.bone_map.Spine)\r\n\t\t\t{\r\n\t\t\t\tpole_vector.applyQuaternion(this.ikRig.root_rot);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tpole_vector = pole.clone();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tsections[i] = this.sampleParabola(target_chain_root, end_effector, s, sections[i] / target_chain_len, pole_vector);\r\n\t\t\tif(i==0)\r\n\t\t\t{\r\n\t\t\t\tconst root_rot = new THREE.Quaternion();\r\n\t\t\t\troot_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(sections[i], target_chain_root, pole));\r\n\t\t\t\t//this.ikRig_solved.push( target_chain_root);\r\n\t\t\t\t//this.ikRig_solved.push( sections[i]);\r\n\t\t\t\tconst qrot = root_rot.clone().multiply(rotation_offset).multiply(this.tpose_rotations[bone_chain[i]]);\r\n\t\t\t\tlet root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\t\tthis.target_bones[bone_chain[i]]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t\t);\r\n\t\t\t\tlet q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t\t\tthis.target_bones[bone_chain[i]]?.rotation.setFromQuaternion(q2);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tconst root_rot = new THREE.Quaternion();\r\n\t\t\t\troot_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(sections[i], sections[i-1], pole));\r\n\t\t\t\t//this.ikRig_solved.push( sections[i-1]);\r\n\t\t\t\t//this.ikRig_solved.push( sections[i]);\r\n\t\t\t\tconst qrot = root_rot.clone().multiply(rotation_offset).multiply(this.tpose_rotations[bone_chain[i]]);\r\n\t\t\t\tlet root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\t\tthis.target_bones[bone_chain[i]]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t\t);\r\n\t\t\t\tlet q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t\t\tthis.target_bones[bone_chain[i]]?.rotation.setFromQuaternion(q2);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// const points = [];\r\n\t\t// points.push(target_chain_root);\r\n\t\t// points.push(root_end);\r\n\t\t// points.push(mid_end);\r\n\t\t// points.push(end_end);\r\n\t\t// points.push(end_effector);\r\n\t\t// const geometry = new THREE.BufferGeometry().setFromPoints( points );\r\n\t\t// const material = new THREE.LineBasicMaterial( { color: 0x0000ff,depthTest: false, depthWrite: false } );\r\n\t\t// const line = new THREE.Line( geometry, material );\r\n\t\t// this.scene.add(line);\r\n\r\n\t\t// root_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(root_end, target_chain_root, pole));\r\n\t\t\r\n\t\t// const qrot = root_rot.clone().multiply(rotation_offset).multiply(this.tpose_rotations[root]);\r\n\t\t// let root_rotation_invert = this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t// let parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t// \tthis.target_bones[root]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t// );\r\n\t\t// let q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t// this.target_bones[root]?.rotation.setFromQuaternion(q2);\r\n\r\n\t\r\n\t\t// mid_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(mid_end, root_end, pole));\r\n\t\t// qrot.copy(mid_rot.clone().multiply(rotation_offset)).multiply(this.tpose_rotations[middle]);\r\n\t\t// parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t// \tthis.target_bones[middle]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t// );\r\n\t\t// q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t// this.target_bones[middle]?.rotation.setFromQuaternion(q2);\r\n\t\r\n\t\t// end_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(end_end, mid_end, pole));\r\n\t\t// qrot.copy(end_rot.clone().multiply(rotation_offset)).multiply(this.tpose_rotations[end]);\r\n\t\t// parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t// \tthis.target_bones[end]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t// );\r\n\t\t// q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t// this.target_bones[end]?.rotation.setFromQuaternion(q2);\r\n\t}\r\n\r\n\tsolveSourceIKChain(direction, pole, length, root, middle, end, rotation_offset, end_rotation) {\r\n\t\trotation_offset = new THREE.Quaternion(rotation_offset.x,-rotation_offset.y,-rotation_offset.z,rotation_offset.w);\r\n\t\t\r\n\t\tdirection = direction.clone();//.applyQuaternion(this.target_root.getWorldQuaternion(new THREE.Quaternion()));\r\n\t\tpole = pole.clone();//.applyQuaternion(this.target_root.getWorldQuaternion(new THREE.Quaternion()));\r\n\t\tconst target_chain_root = this.source_bones[root].getWorldPosition(new THREE.Vector3());\r\n\t\tconst target_chain_mid = this.source_bones[middle].getWorldPosition(new THREE.Vector3());\r\n\t\tconst target_chain_end = this.source_bones[end].getWorldPosition(new THREE.Vector3());\r\n\t\tconst src_chain_len = direction.length();\r\n\t\tconst target_chain_len = target_chain_root.distanceTo(target_chain_mid) + target_chain_mid.distanceTo(target_chain_end);\r\n\t\tconst chain_ratio = src_chain_len / length;\r\n\t\tconst dir = direction.clone().normalize();\r\n\t\tlet end_effector = target_chain_root.clone().add(dir.clone().multiplyScalar(target_chain_len * chain_ratio));\r\n\t\tconst chain_dir_l = pole.clone().normalize();\r\n\t\tconst hip_l_len = target_chain_root.distanceTo(target_chain_mid);\r\n\t\tconst ankle_l_len = target_chain_mid.distanceTo(target_chain_end);\r\n\t\t\r\n\t\t\r\n\t\tthis.chains.push(target_chain_root);\r\n\t\tthis.chains.push(end_effector);\r\n\t\tconst result = this.solve2Bones(target_chain_root, end_effector, target_chain_root.clone().add(end_effector).multiplyScalar(0.5).add(chain_dir_l.clone()), hip_l_len, ankle_l_len);\r\n\t\tlet lHip_rot = result.upper;\r\n\t\tlet lAnkle_rot = result.lower;\r\n\r\n\t\t// const points = [];\r\n\t\tthis.ikRig_solved.push(target_chain_root);\r\n\t\tthis.ikRig_solved.push(target_chain_root.clone().add(new THREE.Vector3( 0, 0, hip_l_len ).applyQuaternion(lHip_rot.clone())));\r\n\t\tthis.ikRig_solved.push(target_chain_root.clone().add(new THREE.Vector3( 0, 0, hip_l_len ).applyQuaternion(lHip_rot.clone())));\r\n\t\tthis.ikRig_solved.push(end_effector);\r\n\t\tthis.ikRig_poles.push(target_chain_root.clone().add(end_effector).multiplyScalar(0.5));\r\n\t\tthis.ikRig_poles.push(target_chain_root.clone().add(end_effector).multiplyScalar(0.5).add(chain_dir_l.clone().multiplyScalar(target_chain_len*0.3)));\r\n\t\tconst root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\tthis.source_bones[root]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t);\r\n\t\tlet q = lHip_rot.clone().multiply(rotation_offset.clone()).multiply(this.source_tpose_rotations[root]);\r\n\t\tlet q2 = parent_global_rotation.clone().invert().multiply(q);\r\n\t\tthis.source_bones[root]?.rotation.setFromQuaternion(q2);\r\n\r\n\t\tparent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\tthis.source_bones[middle]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t);\r\n\t\tq = lAnkle_rot.clone().multiply(rotation_offset.clone()).multiply(this.source_tpose_rotations[middle]);\r\n\t\tq2 = parent_global_rotation.clone().invert().multiply(q);\r\n\t\tthis.source_bones[middle]?.rotation.setFromQuaternion(q2);\r\n\r\n\t\t//propagate 50% of wrist twist to forearm\r\n\t\tif (root == SourceSkeleton.bone_map.LeftUpperArm || root == SourceSkeleton.bone_map.RightUpperArm)\r\n\t\t{\r\n\t\t\tlet sign = 1;\r\n\t\t\tif (root == SourceSkeleton.bone_map.LeftUpperArm )\r\n\t\t\t\tsign *= -1;\r\n\t\t\tlet wrist = end_rotation;\r\n\t\t\t//let foot = this.target_bones[end].getWorldPosition(new THREE.Vector3());\r\n\t\t\t//let knee = foot.clone().sub((new THREE.Vector3(0,0.5,0).applyQuaternion(wrist)));\r\n\t\t\tlet twist = new THREE.Vector3(0,1,0).applyQuaternion(wrist.clone());\r\n\t\t\ttwist = twist.clone().cross(new THREE.Vector3(0,0,-1).applyQuaternion(lAnkle_rot.clone())).normalize();\r\n\t\t\t//knee = foot.clone().sub(twist.multiplyScalar( 0.5));\r\n\t\t\tlAnkle_rot = lAnkle_rot.clone().slerp(this.lookRotation(new THREE.Vector3(0,0,-1).applyQuaternion(lAnkle_rot.clone()), twist.clone().multiplyScalar(sign)), 0.3);\r\n\r\n\t\t}\r\n\r\n\t\tparent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\tthis.source_bones[middle]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t);\r\n\t\tq = lAnkle_rot.clone().multiply(rotation_offset.clone()).multiply(this.source_tpose_rotations[middle]);\r\n\t\tq2 = parent_global_rotation.clone().invert().multiply(q);\r\n\t\tthis.source_bones[middle]?.rotation.setFromQuaternion(q2);\r\n\r\n\t\tparent_global_rotation=this.source_bones[end]?.parent?.getWorldQuaternion(new THREE.Quaternion()).clone();\r\n\t\tq = end_rotation.clone().multiply(this.source_tpose_rotations[end]);\r\n\t\tq2 = parent_global_rotation.clone().invert().multiply(q);\r\n\t\tthis.source_bones[end]?.rotation.setFromQuaternion(q2);\r\n\t}\r\n\tsolveSourceFingerIKChain(direction, pole, length, root, middle, end, rotation_offset) \r\n\t{\r\n\t\tdirection = direction.clone();//.applyQuaternion(this.target_root.getWorldQuaternion(new THREE.Quaternion()));\r\n\t\tpole = pole.clone();//.applyQuaternion(this.target_root.getWorldQuaternion(new THREE.Quaternion()));\r\n\r\n\t\tlet bone_chain = [root, middle, end];\r\n\t\tbone_chain = bone_chain.filter(item => this.source_bones[item] !== undefined);\r\n\t\tif(bone_chain.length==0) return;\r\n\t\tif(bone_chain.length==1)\r\n\t\t{\r\n\t\t\tlet rot = new THREE.Quaternion();\r\n\t\t\trot.setFromRotationMatrix(new THREE.Matrix4().lookAt(direction.clone().normalize(), new THREE.Vector3(), pole));\r\n\t\t\tconst qrot = rot.clone().multiply(rotation_offset).multiply(this.source_tpose_rotations[bone_chain[0]]);\r\n\t\t\tlet root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\tthis.source_bones[bone_chain[0]]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t);\r\n\t\t\tlet q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t\tthis.source_bones[bone_chain[0]]?.rotation.setFromQuaternion(q2);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet target_chain_len = 0;\r\n\t\tlet sections = []\r\n\t\tlet finger_tip = 1;\r\n\t\tif(middle == SourceSkeleton.bone_map.Chest || middle == SourceSkeleton.bone_map.Neck)\r\n\t\t\tfinger_tip = 0;\r\n\t\tfor(let i=1; i < bone_chain.length+finger_tip; i++)\r\n\t\t{\r\n\t\t\r\n\t\t\tif(i==bone_chain.length)\r\n\t\t\t\ttarget_chain_len+=this.source_bones[bone_chain[i-2]].getWorldPosition(new THREE.Vector3()).distanceTo(this.source_bones[bone_chain[i-1]].getWorldPosition(new THREE.Vector3()));\r\n\t\t\telse\r\n\t\t\t\ttarget_chain_len+=this.source_bones[bone_chain[i-1]].getWorldPosition(new THREE.Vector3()).distanceTo(this.source_bones[bone_chain[i]].getWorldPosition(new THREE.Vector3()));\r\n\t\t\tsections.push(target_chain_len);\r\n\t\t}\r\n\r\n\t\tlet target_chain_root = this.source_bones[bone_chain[0]].getWorldPosition(new THREE.Vector3());\r\n\t\t\r\n\t\t//const target_chain_mid = this.target_bones[middle].getWorldPosition(new THREE.Vector3());\r\n\t\t//const target_chain_end = this.target_bones[end].getWorldPosition(new THREE.Vector3());\r\n\r\n\r\n\t\tconst src_chain_len = direction.length();\r\n\t\t// const target_chain_len =\r\n\t\t// \ttarget_chain_root.distanceTo(target_chain_mid) +\r\n\t\t// \ttarget_chain_mid.distanceTo(target_chain_end) +\r\n\t\t// \ttarget_chain_mid.distanceTo(target_chain_end);\r\n\t\tconst chain_ratio = src_chain_len / length;\r\n\t\tconst dir = direction.clone().normalize();\r\n\t\tconst end_effector = target_chain_root.clone().add(dir.clone().multiplyScalar(target_chain_len * chain_ratio));\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\tconst s = 0.43 * Math.sqrt(Math.abs(target_chain_len * target_chain_len - end_effector.distanceToSquared(target_chain_root)));\r\n\t\tif(bone_chain[0] != SourceSkeleton.bone_map.None)\r\n\t\t{\r\n\t\t\tthis.chains.push(target_chain_root);\r\n\t\t\tthis.chains.push(end_effector);\r\n\t\t\tthis.ikRig_poles.push(target_chain_root.clone().add(end_effector).multiplyScalar(0.5));\r\n\t\t\tthis.ikRig_poles.push(target_chain_root.clone().add(end_effector).multiplyScalar(0.5).add(pole.clone().normalize().multiplyScalar(0.3*target_chain_len)));\r\n\t\t}\r\n\t\t\r\n\r\n\t\t//const root_end = this.sampleParabola(target_chain_root, end_effector, s, this.target_bones[middle].position.length() / target_chain_len, pole);\r\n\t\t//const mid_end = this.sampleParabola(target_chain_root, end_effector, s, (this.target_bones[middle].position.length() + this.target_bones[end].position.length()) / target_chain_len, pole);\r\n\t\t//const end_end = this.sampleParabola(target_chain_root, end_effector, s, (this.target_bones[middle].position.length() + this.target_bones[end].position.length() * 2) / target_chain_len, pole);\r\n\t\tfor(let i=0; i < sections.length; i++)\r\n\t\t{\r\n\t\t\tsections[i] = this.sampleParabola(target_chain_root, end_effector, s, sections[i] / target_chain_len, pole);\r\n\t\t\tif(i==0)\r\n\t\t\t{\r\n\t\t\t\tconst root_rot = new THREE.Quaternion();\r\n\t\t\t\troot_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(sections[i], target_chain_root, pole));\r\n\t\t\t\tif(bone_chain[0] != SourceSkeleton.bone_map.None){\r\n\t\t\t\t\tthis.ikRig_solved.push( target_chain_root);\r\n\t\t\t\t\tthis.ikRig_solved.push( sections[i]);\r\n\t\t\t\t}\r\n\t\t\t\tconst qrot = root_rot.clone().multiply(rotation_offset).multiply(this.source_tpose_rotations[bone_chain[i]]);\r\n\t\t\t\tlet root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\t\tthis.source_bones[bone_chain[i]]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t\t);\r\n\t\t\t\tlet q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t\t\tthis.source_bones[bone_chain[i]]?.rotation.setFromQuaternion(q2);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tconst root_rot = new THREE.Quaternion();\r\n\t\t\t\troot_rot.setFromRotationMatrix(new THREE.Matrix4().lookAt(sections[i], sections[i-1], pole));\r\n\t\t\t\tif(bone_chain[0] != SourceSkeleton.bone_map.None){\r\n\t\t\t\t\tthis.ikRig_solved.push( sections[i-1]);\r\n\t\t\t\t\tthis.ikRig_solved.push( sections[i]);\r\n\t\t\t\t}\r\n\t\t\t\tconst qrot = root_rot.clone().multiply(rotation_offset).multiply(this.source_tpose_rotations[bone_chain[i]]);\r\n\t\t\t\tlet root_rotation_invert = new THREE.Quaternion();//this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\t\tlet parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\t\tthis.source_bones[bone_chain[i]]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t\t);\r\n\t\t\t\tlet q2 = parent_global_rotation.clone().invert().multiply(qrot);\r\n\t\t\t\tthis.source_bones[bone_chain[i]]?.rotation.setFromQuaternion(q2);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t}\r\n\tsolve2Bones(root, effector, pole, hip_length, ankle_length) \r\n\t{\r\n\r\n\t\tvar h = 0;\r\n var a = hip_length;\r\n var d = root.distanceTo(effector);\r\n var condition=true;\r\n if (d > Math.abs(hip_length + ankle_length))\r\n {\r\n h = 0;\r\n condition = false;\r\n }\r\n \r\n if (d == 0 && hip_length == ankle_length) \r\n {\r\n h = 0;\r\n condition = false;\r\n }\r\n if(condition)\r\n {\r\n a = (hip_length * hip_length - ankle_length * ankle_length + d * d) / (2 * d);\r\n h = Math.sqrt(Math.max(0.0, hip_length * hip_length - a * a));\r\n }\r\n\r\n var f_dir = effector.clone().sub(root);\r\n f_dir.normalize();\r\n var mid = root.clone().add(f_dir.clone().multiplyScalar(a));\r\n var child = this.projectPointOnPlane(f_dir.clone(), mid.clone(), pole.clone())\r\n child = mid.add(child.clone().sub(mid).normalize().multiplyScalar(h));\r\n var mat = new THREE.Matrix4();\r\n var dir = child.clone().sub(root).normalize();\r\n\t\tvar vec1 = pole.clone().sub(root).normalize();\r\n\t\tvar vec2= f_dir.clone().cross(vec1).normalize();\r\n var up = vec2.clone().cross(dir);\r\n\t\t//upper = this.lookRotation((root.clone().sub(child)).normalize(),up.clone());\r\n mat.lookAt(child, root, up);\r\n var mat2 = new THREE.Matrix4();\r\n dir = child.clone().sub(effector).normalize();\r\n\t\t//Vector3.Cross(( child- effector),(Vector3.Cross(effector - root,(pole - root).normalized)))\r\n\t\tvec2 = (f_dir.clone().cross(vec1)).normalize();\r\n\t\tvec2.crossVectors(f_dir, vec1);\r\n up = dir.clone().cross(vec2);\r\n mat2.lookAt(effector, child, up);\r\n const upper = new THREE.Quaternion().setFromRotationMatrix(mat);\r\n const lower = new THREE.Quaternion().setFromRotationMatrix(mat2);\r\n\t\treturn { upper, lower };\r\n\t}\r\n\r\n\tlookRotation(direction, up)\r\n\t{\r\n\t\tvar mat = new THREE.Matrix4();\r\n\t\tvar eye = new THREE.Vector3();\r\n var target = direction;\r\n mat.lookAt(eye,target, up);\r\n\t\tvar rotation = new THREE.Quaternion();\r\n\t\trotation.setFromRotationMatrix(mat);\r\n\t\treturn rotation;\r\n\t}\r\n\r\n\tsampleParabola(start, end, height, t, outDirection) {\r\n\t\tconst parabolicT = t * 2 - 1;\r\n\t\tconst travelDirection = end.clone().sub(start);\r\n\t\t//const levelDirection = end.clone().sub(new THREE.Vector3(start.x, end.y, start.z));\r\n\t\t//const right = travelDirection.clone().cross(levelDirection);\r\n\t\tconst up = outDirection.clone();\r\n\t\tconst result = start.clone().add(travelDirection.clone().multiplyScalar(t));\r\n\t\tresult.add(up.clone().multiplyScalar((-parabolicT * parabolicT + 1) * height));\r\n\t\treturn result;\r\n\t}\r\n\t\r\n\tprojectPointOnPlane(planeNormal, planePoint, point) {\r\n\t\tvar distance = 0;\r\n distance = planeNormal.clone().dot(point.clone().sub(planePoint).normalize());\r\n //Reverse the sign of the distance\r\n distance *= -1;\r\n //Get a translation vector\r\n planeNormal.normalize();\r\n var translationVector = planeNormal.multiplyScalar(distance);\r\n //Translate the point to form a projection\r\n return point.add(translationVector);\r\n\t}\r\n\r\n\tupdate(){\r\n\t\tif(this.target_bones === undefined || this.target_root === undefined)\r\n\t\t\treturn;\r\n\r\n\t\tthis.chains = [];\r\n\t\tthis.ikRig_solved = [];\r\n\t\tthis.ikRig_poles = [];\r\n\t\tif(this.ikRig.height>0)\r\n\t\t{\r\n\t\t\tlet target_height = this.target_hip_height;\r\n\t\t\tlet source_height = this.ikRig.height;\r\n\t\t\tlet hip_scale = target_height / source_height;\r\n\t\t\tlet target_root_scale = new THREE.Vector3().setFromMatrixScale(this.target_root.matrixWorld);\r\n\t\t\tlet parent_transform_invert = this.target_bones[0].parent.matrixWorld.clone().invert();//cancel scale\r\n\t\t\tlet hips_pos = this.ikRig.root_pos.clone()\r\n\t\t\t\t.multiplyScalar(hip_scale)\r\n\t\t\t\t.divide(target_root_scale)\r\n\t\t\t\t.applyMatrix4(this.target_root.matrixWorld)//apply root transform -> as children of root\r\n\t\t\t\t.applyMatrix4(parent_transform_invert)\r\n\t\t\t;\r\n\r\n\t\t\tthis.source_bones[SourceSkeleton.bone_map.Hips].position.copy(this.ikRig.root_pos.clone());\r\n\t\t\tthis.source_bones[SourceSkeleton.bone_map.Hips].rotation.setFromQuaternion(this.ikRig.root_rot.clone());\r\n\t\t\t\r\n\t\t\t\r\n\t\r\n\t\t\tconst root_rotation_invert = this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\t\tconst parent_global_rotation=root_rotation_invert.clone().multiply(\r\n\t\t\t\tthis.target_bones[0]?.parent?.getWorldQuaternion(new THREE.Quaternion())\r\n\t\t\t);\r\n\t\t\tconst q = this.ikRig.root_rot.clone().multiply(this.tpose_rotations[0]);\r\n\t\t\tconst q2 = parent_global_rotation.clone().invert().multiply(q);\r\n\t\t\tthis.target_bones[0]?.rotation.setFromQuaternion(q2);\r\n\t\t\t\r\n\t\t\tthis.target_bones[SourceSkeleton.bone_map.Hips].position.copy(hips_pos);\r\n\t\t\t\r\n\t\t\tthis.solveIKChain(this.ikRig.l_leg_direction,this.ikRig.l_leg_pole, this.ikRig.l_leg_len, \r\n\t\t\t\tSourceSkeleton.bone_map.LeftUpperLeg,SourceSkeleton.bone_map.LeftLowerLeg,SourceSkeleton.bone_map.LeftFoot,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-90),0,0)), this.ikRig.l_foot_rot);\r\n\t\t\tthis.solveSourceIKChain(this.ikRig.l_leg_direction,this.ikRig.l_leg_pole, this.ikRig.l_leg_len, \r\n\t\t\t\tSourceSkeleton.bone_map.LeftUpperLeg,SourceSkeleton.bone_map.LeftLowerLeg,SourceSkeleton.bone_map.LeftFoot,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-90),0,0)), this.ikRig.l_foot_rot);\r\n\r\n\t\t\tthis.solveIKChain(this.ikRig.r_leg_direction,this.ikRig.r_leg_pole, this.ikRig.r_leg_len, \r\n\t\t\t\t\tSourceSkeleton.bone_map.RightUpperLeg,SourceSkeleton.bone_map.RightLowerLeg,SourceSkeleton.bone_map.RightFoot,\r\n\t\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-90),0,0)), this.ikRig.r_foot_rot); \t\t\r\n\t\t\tthis.solveSourceIKChain(this.ikRig.r_leg_direction,this.ikRig.r_leg_pole, this.ikRig.r_leg_len, \r\n\t\t\t\t\tSourceSkeleton.bone_map.RightUpperLeg,SourceSkeleton.bone_map.RightLowerLeg,SourceSkeleton.bone_map.RightFoot,\r\n\t\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-90),0,0)), this.ikRig.r_foot_rot); \r\n\t\t\t\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.spine_direction, this.ikRig.spine_pole, this.ikRig.spine_len, \r\n\t\t\t\tSourceSkeleton.bone_map.Spine, SourceSkeleton.bone_map.Chest, SourceSkeleton.bone_map.UpperChest,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),0,0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.spine_direction, this.ikRig.spine_pole, this.ikRig.spine_len, \r\n\t\t\t\tSourceSkeleton.bone_map.Spine, SourceSkeleton.bone_map.Chest, SourceSkeleton.bone_map.UpperChest,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),0,0)));\r\n\r\n\t\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.neck_direction, this.ikRig.neck_pole, this.ikRig.neck_len, \r\n\t\t\t\tSourceSkeleton.bone_map.None, SourceSkeleton.bone_map.Neck, SourceSkeleton.bone_map.Head,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),0,0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.neck_direction, this.ikRig.neck_pole, this.ikRig.neck_len, \r\n\t\t\t\tSourceSkeleton.bone_map.None, SourceSkeleton.bone_map.Neck, SourceSkeleton.bone_map.Head,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),0,0)));\r\n\t\t\t\r\n\t\t\t//this.target_bones[SourceSkeleton.bone_map.Head].rotation.setFromQuaternion(this.target_bones[SourceSkeleton.bone_map.Neck].quaternion);\r\n\r\n\t\t\tthis.solveIKChain(this.ikRig.l_arm_direction,this.ikRig.l_arm_pole, this.ikRig.l_arm_len, \r\n\t\t\t\t\t\tSourceSkeleton.bone_map.LeftUpperArm,SourceSkeleton.bone_map.LeftLowerArm,SourceSkeleton.bone_map.LeftHand,\r\n\t\t\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),THREE.MathUtils.degToRad(0),THREE.MathUtils.degToRad(-90))), this.ikRig.l_hand_rot);\r\n\t\t\tthis.solveSourceIKChain(this.ikRig.l_arm_direction,this.ikRig.l_arm_pole, this.ikRig.l_arm_len, \r\n\t\t\t\t\t\tSourceSkeleton.bone_map.LeftUpperArm,SourceSkeleton.bone_map.LeftLowerArm,SourceSkeleton.bone_map.LeftHand,\r\n\t\t\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),THREE.MathUtils.degToRad(0),THREE.MathUtils.degToRad(-90))), this.ikRig.l_hand_rot);\r\n\r\n\t\t\tthis.solveIKChain(this.ikRig.r_arm_direction,this.ikRig.r_arm_pole, this.ikRig.r_arm_len, \r\n\t\t\t\tSourceSkeleton.bone_map.RightUpperArm,SourceSkeleton.bone_map.RightLowerArm,SourceSkeleton.bone_map.RightHand,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),THREE.MathUtils.degToRad(0),THREE.MathUtils.degToRad(90))), this.ikRig.r_hand_rot);\r\n\t\t\tthis.solveSourceIKChain(this.ikRig.r_arm_direction,this.ikRig.r_arm_pole, this.ikRig.r_arm_len, \r\n\t\t\t\tSourceSkeleton.bone_map.RightUpperArm,SourceSkeleton.bone_map.RightLowerArm,SourceSkeleton.bone_map.RightHand,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(90),THREE.MathUtils.degToRad(0),THREE.MathUtils.degToRad(90))), this.ikRig.r_hand_rot);\r\n\t\t\t\r\n\t\t\tlet left_finger_pole = new THREE.Vector3(0,0,-1).applyQuaternion(this.ikRig.l_hand_rot);\r\n\t\t\tlet left_index_pole = this.ikRig.l_index_direction.clone().normalize().cross(left_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.l_index_direction, left_index_pole, this.ikRig.l_index_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftIndex1, SourceSkeleton.vp_bone_map.LeftIndex2, SourceSkeleton.vp_bone_map.LeftIndex3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.l_index_direction, left_index_pole, this.ikRig.l_index_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftIndex1, SourceSkeleton.vp_bone_map.LeftIndex2, SourceSkeleton.vp_bone_map.LeftIndex3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\t\t\t\r\n\t\t\tlet left_middle_pole = this.ikRig.l_middle_direction.clone().normalize().cross(left_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.l_middle_direction, left_middle_pole, this.ikRig.l_middle_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftMiddle1, SourceSkeleton.vp_bone_map.LeftMiddle2, SourceSkeleton.vp_bone_map.LeftMiddle3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.l_middle_direction, left_middle_pole, this.ikRig.l_middle_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftMiddle1, SourceSkeleton.vp_bone_map.LeftMiddle2, SourceSkeleton.vp_bone_map.LeftMiddle3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\r\n\r\n\t\t\tlet left_ring_pole = this.ikRig.l_ring_direction.clone().normalize().cross(left_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.l_ring_direction, left_ring_pole, this.ikRig.l_ring_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftRing1, SourceSkeleton.vp_bone_map.LeftRing2, SourceSkeleton.vp_bone_map.LeftRing3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.l_ring_direction, left_ring_pole, this.ikRig.l_ring_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftRing1, SourceSkeleton.vp_bone_map.LeftRing2, SourceSkeleton.vp_bone_map.LeftRing3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\r\n\t\t\tlet left_pinky_pole = this.ikRig.l_pinky_direction.clone().normalize().cross(left_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.l_pinky_direction, left_pinky_pole, this.ikRig.l_pinky_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftPinky1, SourceSkeleton.vp_bone_map.LeftPinky2, SourceSkeleton.vp_bone_map.LeftPinky3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.l_pinky_direction, left_pinky_pole, this.ikRig.l_pinky_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftPinky1, SourceSkeleton.vp_bone_map.LeftPinky2, SourceSkeleton.vp_bone_map.LeftPinky3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(-90),0)));\r\n\r\n\t\t\tleft_finger_pole = new THREE.Vector3(1,0,0).applyQuaternion(this.ikRig.l_hand_rot);\r\n\t\t\tlet left_thumb_pole = this.ikRig.l_thumb_direction.clone().normalize().cross(left_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.l_thumb_direction, left_thumb_pole, this.ikRig.l_thumb_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftThumb1, SourceSkeleton.vp_bone_map.LeftThumb2, SourceSkeleton.vp_bone_map.LeftThumb3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-30),THREE.MathUtils.degToRad(-50),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.l_thumb_direction, left_thumb_pole, this.ikRig.l_thumb_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.LeftThumb1, SourceSkeleton.vp_bone_map.LeftThumb2, SourceSkeleton.vp_bone_map.LeftThumb3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-30),THREE.MathUtils.degToRad(-50),0)));\r\n\t\t\t\r\n\r\n\t\t\tlet right_finger_pole = new THREE.Vector3(0,0,1).applyQuaternion(this.ikRig.r_hand_rot);\r\n\t\t\tlet right_index_pole = this.ikRig.r_index_direction.clone().normalize().cross(right_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.r_index_direction, right_index_pole, this.ikRig.r_index_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightIndex1, SourceSkeleton.vp_bone_map.RightIndex2, SourceSkeleton.vp_bone_map.RightIndex3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.r_index_direction, right_index_pole, this.ikRig.r_index_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightIndex1, SourceSkeleton.vp_bone_map.RightIndex2, SourceSkeleton.vp_bone_map.RightIndex3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\t\t\t\r\n\t\t\tlet right_middle_pole = this.ikRig.r_middle_direction.clone().normalize().cross(right_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.r_middle_direction, right_middle_pole, this.ikRig.r_middle_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightMiddle1, SourceSkeleton.vp_bone_map.RightMiddle2, SourceSkeleton.vp_bone_map.RightMiddle3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.r_middle_direction, right_middle_pole, this.ikRig.r_middle_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightMiddle1, SourceSkeleton.vp_bone_map.RightMiddle2, SourceSkeleton.vp_bone_map.RightMiddle3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\r\n\t\t\tlet right_ring_pole = this.ikRig.r_ring_direction.clone().normalize().cross(right_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.r_ring_direction, right_ring_pole, this.ikRig.r_ring_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightRing1, SourceSkeleton.vp_bone_map.RightRing2, SourceSkeleton.vp_bone_map.RightRing3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.r_ring_direction, right_ring_pole, this.ikRig.r_ring_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightRing1, SourceSkeleton.vp_bone_map.RightRing2, SourceSkeleton.vp_bone_map.RightRing3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\r\n\t\t\tlet right_pinky_pole = this.ikRig.r_pinky_direction.clone().normalize().cross(right_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.r_pinky_direction, right_pinky_pole, this.ikRig.r_pinky_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightPinky1, SourceSkeleton.vp_bone_map.RightPinky2, SourceSkeleton.vp_bone_map.RightPinky3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.r_pinky_direction, right_pinky_pole, this.ikRig.r_pinky_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightPinky1, SourceSkeleton.vp_bone_map.RightPinky2, SourceSkeleton.vp_bone_map.RightPinky3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(0,THREE.MathUtils.degToRad(90),0)));\r\n\r\n\t\t\tright_finger_pole = new THREE.Vector3(1,0,0).applyQuaternion(this.ikRig.r_hand_rot);\r\n\t\t\tlet right_thumb_pole = this.ikRig.r_thumb_direction.clone().normalize().cross(right_finger_pole).normalize();\r\n\t\t\tthis.solveFingerIKChain(this.ikRig.r_thumb_direction, right_thumb_pole, this.ikRig.r_thumb_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightThumb1, SourceSkeleton.vp_bone_map.RightThumb2, SourceSkeleton.vp_bone_map.RightThumb3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-30),THREE.MathUtils.degToRad(50),0)));\r\n\t\t\tthis.solveSourceFingerIKChain(this.ikRig.r_thumb_direction, right_thumb_pole, this.ikRig.r_thumb_len, \r\n\t\t\t\tSourceSkeleton.vp_bone_map.RightThumb1, SourceSkeleton.vp_bone_map.RightThumb2, SourceSkeleton.vp_bone_map.RightThumb3,\r\n\t\t\t\tnew THREE.Quaternion().setFromEuler(new THREE.Euler(THREE.MathUtils.degToRad(-30),THREE.MathUtils.degToRad(50),0)));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t//root translation\r\n\t\tconst hip_scale = this.target_hip_height/this.getHipHeight(this.source_bones);\r\n\t\tconst target_root_scale = new THREE.Vector3().setFromMatrixScale(this.target_root.matrixWorld);\r\n\t\tconst parent_transform_invert = this.target_bones[0].parent.matrixWorld.clone().invert();//cancel scale\r\n\t\tconst pos = this.source_bones[0].position.clone()\r\n\t\t\t.multiplyScalar(hip_scale)//scale for foot contact\r\n\t\t\t.divide(target_root_scale)//without scale, \r\n\t\t\t.applyMatrix4(this.target_root.matrixWorld)//apply root transform -> as children of root\r\n\t\t\t.applyMatrix4(parent_transform_invert)//set position local to parent\r\n\t\t;\r\n\t\tthis.target_bones[0].position.copy(pos);\r\n\t\t// this.target_bones[0].position.copy(this.source_bones[0].position);\r\n\r\n\t\t//rotations\r\n\t\tconst root_rotation_invert = this.target_root.getWorldQuaternion(new THREE.Quaternion()).invert();\r\n\t\tfor(let i=0; i> 3; //b/8\r\n\t\tconst shift = b & 0b111; //b%8, 0~7\r\n\t\treturn (this.buf[offset] & (1<{},\r\n\t\tParser.parseRotationFrame,\r\n\t\tParser.parseTranslationFrame,\r\n\t\tParser.parseMorphFrame,\r\n\t\tParser.parseCalibFrame,\r\n\t\tParser.parseMicFrame,\r\n\t\tParser.parseIKRig\r\n\t];\r\n\tstatic typeTable = [\r\n\t\tundefined,\r\n\t\t\"rotations\",\r\n\t\t\"translations\",\r\n\t\t\"morph\",\r\n\t\t\"calib\",\r\n\t\t\"mic\",\r\n\t\t\"ikrig\"\r\n\t];\r\n\tstatic parse(buf){\r\n\t\tconst id = new Uint8Array(buf)[0];\r\n\t\treturn [Parser.typeTable[id], Parser.parseTable[id].bind(Parser)(buf.slice(1))];\r\n\t}\r\n\r\n\tstatic DeserializeQ(bits){\r\n\t\tconst id = bits.consume(2, false);\r\n\t\tconst x = bits.consume(14)/10000;\r\n\t\tconst y = bits.consume(14)/10000;\r\n\t\tconst z = bits.consume(14)/10000;\r\n\t\tconst r = Math.sqrt(Math.abs(1.0 - (Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2))));\r\n\t\tswitch(id){\r\n\t\t\tcase 0:\r\n\t\t\t\treturn new THREE.Quaternion(x, y, z, r);\r\n\t\t\tcase 1:\r\n\t\t\t\treturn new THREE.Quaternion(r, y, z, x);\r\n\t\t\tcase 2:\r\n\t\t\t\treturn new THREE.Quaternion(y, r, z, x);\r\n\t\t\tcase 3:\r\n\t\t\t\treturn new THREE.Quaternion(y, z, r, x);\r\n\t\t\tdefault:\r\n\t\t\t\treturn new THREE.Quaternion();\r\n\t\t}\r\n\t}\r\n\tstatic parseIKRig(buf)\r\n\t{\r\n\t\tvar view = new DataView(buf.slice(0,12));\r\n\t\tvar num = view.getFloat32(0,true);\r\n\t\tvar num2 = view.getFloat32(4,true);\r\n\t\tvar num3 = view.getFloat32(8,true);\r\n\t\tnum,num2,num3;\r\n\t\tlet floats = new Float32Array(buf.slice(0,12));\r\n\t\tikRig.root_pos = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tconst bits = new BitsConsumer(buf.slice(12,40));\r\n\t\tconst rotations = [];\r\n\t\tfor(let i=0; i<5; i++){\r\n\t\t\trotations.push(Parser.DeserializeQ(bits));\r\n\t\t}\r\n\t\tikRig.root_rot = new THREE.Quaternion(rotations[0].x,-rotations[0].y,-rotations[0].z,rotations[0].w);\r\n\t\tikRig.l_hand_rot = new THREE.Quaternion(rotations[1].x,-rotations[1].y,-rotations[1].z,rotations[1].w);\r\n\t\tikRig.r_hand_rot = new THREE.Quaternion(rotations[2].x,-rotations[2].y,-rotations[2].z,rotations[2].w);\r\n\t\tikRig.l_foot_rot = new THREE.Quaternion(rotations[3].x,-rotations[3].y,-rotations[3].z,rotations[3].w);\r\n\t\tikRig.r_foot_rot = new THREE.Quaternion(rotations[4].x,-rotations[4].y,-rotations[4].z,rotations[4].w);\r\n\t\tlet offset = 40;\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_arm_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_arm_pole = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_arm_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_arm_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_arm_pole = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_arm_len = floats[0];\r\n\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_leg_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_leg_pole = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_leg_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_leg_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_leg_pole = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_leg_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.spine_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tikRig.spine_direction = ikRig.spine_direction.multiplyScalar(2);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.spine_pole = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.spine_len = floats[0];\r\n\t\tikRig.spine_len = ikRig.spine_len * 2;\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.neck_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.neck_pole = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.neck_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_thumb_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_thumb_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_thumb_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_thumb_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_index_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_index_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_index_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_index_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_middle_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_middle_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_middle_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_middle_len = floats[0];\r\n\t\t\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_ring_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_ring_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_ring_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_ring_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.l_pinky_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.l_pinky_len = floats[0];\r\n\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+6)))].map(e=>e/32767.0);\r\n\t\toffset+=6;\r\n\t\tikRig.r_pinky_direction = new THREE.Vector3(-floats[0],floats[1],floats[2]);\r\n\t\tfloats = [...(new Int16Array(buf.slice(offset, offset+2)))].map(e=>e/32767.0);\r\n\t\toffset+=2;\r\n\t\tikRig.r_pinky_len = floats[0];\r\n\r\n\t\tfloats = [...(new Uint16Array(buf.slice(offset, offset+2)))].map(e=>e/65535.0);\r\n\t\toffset+=2;\r\n\t\tikRig.height = floats[0];\r\n\t\treturn ikRig;\r\n\t}\r\n\r\n\tstatic parseRotationFrame(buf)\r\n\t{\r\n\t\tconst model_id = new BigUint64Array(buf.slice(0, 8))[0];/* eslint-disable-line */\r\n\t\tconst bits = new BitsConsumer(buf.slice(8));\r\n\t\tconst num_joints = model_id==98969896 ? 22 : model_id;\r\n\t\tconst rotations = [];\r\n\t\tfor(let i=0; ie/65535.0);\r\n\t\treturn [root, lens];\r\n\t}\r\n\r\n\tstatic parseMorphFrame(buf)\r\n\t{\r\n\t\treturn [...new Uint8Array(buf)].map((e)=>{return e/255.0;});\r\n\t}\r\n\r\n\tstatic parseCalibFrame(buf)\r\n\t{\r\n\t\tconst model_id = new BigUint64Array(buf.slice(0, 8))[0];/* eslint-disable-line */\r\n\t\tif(model_id==98969896){\r\n\t\t\tconst arr = new Float32Array(buf.slice(8));\r\n\t\t\tconst [h, w] = [arr[0]*100, arr[1]*100];\r\n\t\t\treturn [h, w];\r\n\t\t}\r\n\t}\r\n\t\r\n\tstatic parseMicFrame(buf)\r\n\t{\r\n\t\treturn new Uint8Array(buf[0]);\r\n\t}\r\n}","import * as utils from \"./utils.mjs\";\nimport * as THREE from 'three'\n\n// if(RTCPeerConnection.prototype.addTransceiver===undefined || window.chrome){\n// \tRTCPeerConnection.prototype.addTransceiver = function(kind){\n// \t\tif(this._offerOptions===undefined)\n// \t\t\tthis._offerOptions={};\n// \t\tif(kind==='audio')\n// \t\t\tthis._offerOptions.offerToReceiveAudio=true;\n// \t\telse if(kind==='video')\n// \t\t\tthis._offerOptions.offerToReceiveVideo=true;\n// \t}\n// \tRTCPeerConnection.prototype.origCreateOffer = RTCPeerConnection.prototype.createOffer;\n// \tRTCPeerConnection.prototype.createOffer = function(){\n// \t\treturn this.origCreateOffer(this._offerOptions);\n// \t}\n// }\n\nclass SignalingClient extends THREE.EventDispatcher{\n\tconstructor(){\n\t\tsuper();\n\t\tthis.name;\n\t\tthis.socket;\n\n\t\tthis.addEventListener(\"login\", (event)=>{\n\t\t\tif(this.name === undefined){\n\t\t\t\tlet name = event.data;\n\t\t\t\t//console.log(\"Set name: \", name);\n\t\t\t\tthis.name = name;\n\t\t\t}\n\t\t\telse\n\t\t\t\tconsole.log(\"Already has name: \", this.name, \", \", name);\n\t\t\tthis.dispatchEvent({type: \"logged\", data: undefined});\n\t\t});\n\t}\n\tclose(){\n\t\tthis.socket.close();\n\t\tthis.socket = undefined;\n\t}\n\tlogin(url){\n\t\tlet apiversion = utils.get_param(\"apiversion\");\n\t\tif(apiversion==2)\n\t\t{\n\t\t\tthis.socket = new WebSocket(url, utils.has_param(\"host\") ? [\"WebSocket++\", \t\"apiversion_2\"]: [\"apiversion_2\"]);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.socket = new WebSocket(url, utils.has_param(\"host\") ? [\"WebSocket++\"]: []);\n\t\t}\n\t\tthis.socket.onmessage = (msg) => { \n\t\t\tconst request = JSON.parse(msg.data); \n\t\t\t//const [req_type, data] = [request.req_type, request.data];\n\t\t\trequest.type = request.req_type;\n\t\t\t//console.log(\"Recv: \", request); \n\n\t\t\tthis.dispatchEvent(request);\n\t\t}; \n\t\tthis.socket.onopen = (event) => { \n\t\t\tconsole.log(\"Connected to the signaling server \"+event);\n\t\t};\n\t\tthis.socket.onerror = console.warn;\n\t\tthis.socket.onclose = (event) =>{\n\t\t\tthis.dispatchEvent({\n\t\t\t\ttype: \"close\",\n\t\t\t\tdata: event\n\t\t\t})\n\t\t};\n\t}\n\tsignal(msg){\n\t\t//console.log(\"Send: \", msg.data);\n\t\tmsg.s_name = this.name;\n\t\tthis.socket.send(JSON.stringify(msg));\n\t}\n}\n\nfunction updateBandwidthRestriction(desc) {\n\tlet sdp = desc.sdp;\n\tlet ASstr = window.chrome ? 'AS:100000' : 'TIAS:100000000'\n\tif(!sdp.includes(ASstr))\n\t\tsdp = sdp.replace(new RegExp(\"(m=video.*\\r\\n.*)\"), `$1\\r\\nb=${ASstr}`);\n\ttry{\n\t\tlet start_bitrate = new URL(window.location.href).searchParams.get(\"start\");\n\t\tlet min_bitrate = new URL(window.location.href).searchParams.get(\"min\");\n\t\tlet max_bitrate = new URL(window.location.href).searchParams.get(\"max\");\n\t\tlet setting = \"\";\n\t\tif(min_bitrate)\n\t\t\tsetting += `;x-google-min-bitrate=${min_bitrate}`\n\t\tif(start_bitrate)\n\t\t\tsetting += `;x-google-start-bitrate=${start_bitrate}`\n\t\tif(max_bitrate)\n\t\t\tsetting += `;x-google-max-bitrate=${max_bitrate}`\n\t\tsdp = sdp.replaceAll(new RegExp(\"(a=fmtp:.*)\", \"g\"), `$1${setting}`);\n\t}catch(e){\n\t\tconsole.log(\"set starting bitrate failed\");\n\t}\n\treturn {\n\t\ttype: desc.type,\n\t\tsdp: sdp\n\t};\n}\n\nclass PeerConnection extends THREE.EventDispatcher{\n\tconstructor(peer, socket, turn){\n\t\tsuper();\n\t\tthis.peer = peer;\n\t\tthis.socket = socket;\n\n\t\tlet ICE_config= {\n\t\t\t\"iceServers\":[\n\t\t\t\t{\n\t\t\t\t\turls: [\"stun:stun.l.google.com:19302\"]\n\t\t\t\t},\n\t\t\t],\n\t\t\t//\"iceTransportPolicy\": \"relay\"\n\t\t};\n\t\tif(turn!==undefined)\n\t\t\tICE_config.iceServers = ICE_config.iceServers.concat(turn);\n\t\t//if(!utils.has_param(\"host\"))\n\n\t\tlet optional = {\"optional\": [{googCpuOveruseDetection: false}]};\n\t\tthis.pc = new RTCPeerConnection(ICE_config, optional);\n\t\tthis.pc.onnegotiationneeded = ()=>{console.log(\"onnegotiationneeded\");};\n\n\t\tlet isHost = utils.has_param(\"host\");\n\n\t\t//remote track\n\t\tthis.pc.addTransceiver(\"video\", {\n\t\t\tdirection: isHost ? \"sendonly\" : \"recvonly\",\n\t\t\t// sendEncodings: [\n\t\t\t// \t{maxBitrate: 100000000}\n\t\t\t// ]\n\t\t});\n\t\tthis.pc.addTransceiver(\"audio\", {\n\t\t\tdirection: isHost? \"sendonly\" : \"recvonly\",\n\t\t});\n\n\t\tthis.pc.ontrack = (event) => {\n\t\t\ttry{\n\t\t\t\tlet delay = utils.get_param(\"delay\");\n\t\t\t\tif(delay)\n\t\t\t\t\tfor(let receiver of this.pc.getReceivers())\n\t\t\t\t\t\treceiver.playoutDelayHint = delay;\n\t\t\t}catch(e){\n\t\t\t\tconsole.log(\"set playoutDelay failed\");\n\t\t\t}\n\t\t\tthis.dispatchEvent({type: \"track\", data: event});\n\t\t}\n\n\t\tthis.pc.oniceconnectionstatechange = (event) => {\n\t\t\tif(this.pc.iceConnectionState == \"disconnected\"){\n\t\t\t\tconsole.log(\"Detect iceConnectionStateChange to disconnected \" + event)\n\t\t\t\t//this.close();\n\t\t\t}\n\t\t}\n\n\t\t//candidate, on local icecandidate ready\n\t\tthis.pc.onicecandidate = (event) => {\n\t\t\tif(event.candidate){\n\t\t\t\tthis.socket.signal({\n\t\t\t\t\treq_type: \"candidate\",\n\t\t\t\t\tdata: event.candidate,\n\t\t\t\t\tr_name: this.peer\n\t\t\t\t}); \n\t\t\t}\n\t\t};\n\t\t\n\t\t//remote datachannel\n\t\tthis.pc.ondatachannel = (event) => {\n\t\t\t//console.log(event);\n\t\t\tif(!isHost){\n\t\t\t\tthis.dataChannel = event.channel;\n\t\t\t\tthis.initChannel(this.dataChannel);\n\t\t\t}\n\t\t}\n\n\t\t//local datachannel\n\t\tif(isHost){\n\t\t\tthis.dataChannel = this.pc.createDataChannel(this.socket.name);\n\t\t\tthis.initChannel(this.dataChannel);\n\t\t}\n\t}\n\tclose(){\n\t\tif(this.pc){\n\t\t\tif(this.dataChannel){\n\t\t\t\tthis.closeChannel(this.dataChannel);\n\t\t\t\tthis.dataChannel = undefined;\n\t\t\t}\n\t\t\tfor(const name of Object.keys(this.pc))\n\t\t\t\tif(name.startsWith(\"on\"))\n\t\t\t\t\tthis.pc[name]=undefined;\n\t\t\tthis.pc.close();\n\t\t\tthis.pc = undefined;\n\t\t}else{\n\t\t\tconsole.warn(\"rtc is not initialized\");\n\t\t}\n\t\tthis.dispatchEvent({type:\"close\"});\n\t}\n\n\t//---------webrtc--------\n\tasync offer() {//create sdp offer\n\t\ttry{\n\t\t\tlet offer = await this.pc.createOffer();\n\t\t\toffer = updateBandwidthRestriction(offer);\n\t\t\tawait this.pc.setLocalDescription(offer);\n\t\t\tthis.onSetLocalDescription();\n\t\t}catch(e){\n\t\t\tconsole.warn(e);\n\t\t}\n\t}\n\tasync onOffer(offer) {\n\t\ttry{\n\t\t\toffer = updateBandwidthRestriction(offer);\n\t\t\tawait this.pc.setRemoteDescription(offer);\n\t\t\tlet answer = await this.pc.createAnswer();\n\t\t\tanswer = updateBandwidthRestriction(answer);\n\t\t\tawait this.pc.setLocalDescription(answer);\n\t\t\tthis.onSetLocalDescription();\n\t\t}catch(e){\n\t\t\tconsole.warn(e);\n\t\t}\n\t}\n\tasync onAnswer(answer) {//receive answer\n\t\ttry{\n\t\t\tanswer = updateBandwidthRestriction(answer);\n\t\t\tawait this.pc.setRemoteDescription(answer);\n\t\t}catch(e){\n\t\t\tconsole.warn(e);\n\t\t}\n\t}\n\tonSetLocalDescription(){//send description to peer\n\t\tthis.socket.signal({\n\t\t\treq_type: this.pc.localDescription.type,\n\t\t\tdata: this.pc.localDescription,\n\t\t\tr_name: this.peer\n\t\t});\n\t}\n\tonCandidate(candidate) {//on receive icecandidate\n\t\tthis.pc.addIceCandidate(new RTCIceCandidate(candidate))\n\t\t.catch((error)=>{\n\t\t\tconsole.warn(error, \"addIceCandidate failed\", candidate);\n\t\t});\n\t}\n\t//---------webrtc--------\n\n\t//-------datachannel-------\n\tinitChannel(channel){\n\t\tchannel.binaryType = \"arraybuffer\";\n\t\tchannel.onmessage = (event) => {\n\t\t\tthis.dispatchEvent({type: \"message\", data: event.data});\n\t\t};\n\t\tchannel.onerror = console.warn;\n\t\tchannel.onclose = () => { \n\t\t\tconsole.log(\"onclose: \", channel.label);\n\t\t};\n\t\tchannel.onopen = () => {\n\t\t\tconsole.log(\"onopen: \", channel.label);\n\t\t\tthis.dispatchEvent({type: \"datachannel\", data: undefined});\n\t\t};\n\t}\n\tcloseChannel(channel){\n\t\tchannel.close();\n\t\tchannel.onmessage = undefined;\n\t\tchannel.onerror = undefined;\n\t\tchannel.onclose = undefined;\n\t\tchannel.onopen = undefined;\n\t}\n\tsend(data){//send through datachannel\n\t\tif(this.dataChannel && this.dataChannel.readyState===\"open\")\n\t\t\tthis.dataChannel.send(data);\n\t}\n\tsendJSON(req_type, data){\n\t\tthis.send(JSON.stringify({\n\t\t\treq_type: req_type,\n\t\t\tdata: data\n\t\t}));\n\t}\t\n\t//-------datachannel-------\n\n\taddStream(stream){\n\t\tthis.stream = stream;\n\t\tthis.stream.getTracks().forEach((track)=>{\n\t\t\tthis.pc.addTrack(track);\n\t\t});\n\t}\n}\n\nexport class Client extends THREE.EventDispatcher{\n\tconstructor(){\n\t\tsuper();\n\t\t//websocket signaling client\n\t\tthis.socket;\n\t\t//rtc\n\t\tthis.pcs = {};\n\n\t\tthis.connected = false;\n\n\t\t// this.initStat();\n\t}\n\tgetPC(peer, turn){\n\t\tif(this.pcs[peer]===undefined){\n\t\t\tthis.pcs[peer] = new PeerConnection(peer, this.socket, turn===undefined ? this.turn: turn);\n\t\t\tif(this.stream){\n\t\t\t\tthis.pcs[peer].pc.addStream(this.stream);\n\t\t\t}\n\t\t\tthis.pcs[peer].addEventListener(\"datachannel\", (e)=>{\n\t\t\t\tthis.dispatchEvent(e);\n\t\t\t});\n\t\t\tthis.pcs[peer].addEventListener(\"message\", (e)=>{\n\t\t\t\t//e.data.type = e.data.req_type\n\t\t\t\t//this.dispatchEvent(e.data);\n\t\t\t\tthis.dispatchEvent({type: \"message\", data: e.data});\n\t\t\t});\n\t\t\tthis.pcs[peer].addEventListener(\"track\", (e)=>{\n\t\t\t\tthis.dispatchEvent(e);\n\t\t\t})\n\t\t\tthis.pcs[peer].addEventListener(\"close\", ()=>{\n\t\t\t\tdelete this.pcs[peer];\n\t\t\t});\n\t\t}\n\t\treturn this.pcs[peer];\n\t}\n\tisConnected(){\n\t\treturn this.connected;\n\t}\n\tget pc(){\n\t\treturn Object.values(this.pcs)[0];//the only pc for client.\n\t}\n\tconnect(url){\n\t\tthis.socket = new SignalingClient();\n\t\tthis.socket.addEventListener(\"room\", (e)=>{\n\t\t\tthis.connected = true;\n\t\t\tthis.dispatchEvent(e);\n\t\t});\n\n\t\tthis.socket.addEventListener(\"logged\", ()=>{\n\t\t\tthis.socket.addEventListener(\"turn\", (e)=>{\n\t\t\t\tthis.turn = e.data;\n\t\t\t});\n\t\t\t//host side\n\t\t\tthis.socket.addEventListener(\"user\", (e)=>{\n\t\t\t\tlet user = e.s_name;\n\t\t\t\tlet turn = e.data;\n\t\t\t\tconsole.log(\"User: \", user);\n\t\t\t\tthis.getPC(user, turn).offer();//send offer to the user\n\t\t\t});\n\t\t\tthis.socket.addEventListener(\"answer\", (e)=>{\n\t\t\t\tthis.getPC(e.s_name).onAnswer(e.data);\n\t\t\t});\n\t\t\t//--------------\n\n\t\t\tthis.socket.addEventListener(\"offer\", (e)=>{\n\t\t\t\tthis.getPC(e.s_name).onOffer(e.data);\n\t\t\t});\n\t\t\tthis.socket.addEventListener(\"candidate\", (e)=>{\n\t\t\t\tthis.getPC(e.s_name).onCandidate(e.data);\n\t\t\t});\n\t\t\tthis.socket.addEventListener(\"leave\", (e)=>{\n\t\t\t\tthis.getPC(e.s_name).close();\n\t\t\t});\n\t\t});\n\n\t\tthis.socket.login(url);\n\t}\n\n\tclose(){\n\t\tthis.connected = false;\n\t\t//close everything!\n\t\tfor(let [name, pc] of Object.entries(this.pcs)){\n\t\t\tname;\n\t\t\tpc.close();\n\t\t}\n\t\tthis.pcs = {};\n\n\t\tif(this.socket){\n\t\t\tthis.socket.close();\n\t\t}else{\n\t\t\tconsole.warn(\"socket is not initialized\");\n\t\t}\n\t}\n\tsend(data){\n\t\tif(this.pc)\n\t\t\tthis.pc.send(data)\n\t}\n\tsendJSON(req_type, data){\n\t\tif(this.pc)\n\t\t\tthis.pc.sendJSON(req_type, data);\n\t}\n\taddStream(stream){\n\t\tthis.stream = stream;\n\t\tfor(let [name, pc] of Object.entries(this.pcs)){\n\t\t\tname;\n\t\t\tif(pc.stream===undefined)\n\t\t\t\tpc.addStream(stream);\n\t\t}\n\t}\n\t// initStat(){\n\t// \tlet stats = new Stats();\n\t// \tstats.domElement.id = \"stats\";\n\t// \tlet brPanel = stats.addPanel(new Stats.Panel('kbps', '#0ff', '#002'));\n\t// \tstats.domElement.style.zIndex = 1000;\n\t// \t// stats.domElement.style.removeProperty(\"left\");\n\t// \t// stats.domElement.style.setProperty(\"right\", \"0px\");\n\t// \t// stats.domElement.style.setProperty(\"top\", \"0px\");\n\t// \tstats.domElement.style.setProperty(\"position\", \"absolute\");\n\t// \tdocument.body.appendChild(stats.domElement);\n\t//\n\t// \tstats.showPanel(2);\n\t// \tlet lastResult;\n\t// \tsetInterval(async()=>{\n\t// \t\tif(!this.pc)\n\t// \t\t\treturn;\n\t// \t\tlet receivers = this.pc.pc.getReceivers();\n\t// \t\treceivers.forEach(async (receiver)=>{\n\t// \t\t\tif(receiver.track.kind==\"video\" && !receiver.track.muted){\n\t// \t\t\t\tlet stats = await receiver.getStats();\n\t// \t\t\t\tstats.forEach((report)=>{\n\t// \t\t\t\t\tif(report.type==\"inbound-rtp\"){\n\t// \t\t\t\t\t\tif(report.isRemote){\n\t// \t\t\t\t\t\t\treturn;\n\t// \t\t\t\t\t\t}\n\t// \t\t\t\t\t\tconst now = report.timestamp;\n\t// \t\t\t\t\t\tconst bytes = report.bytesReceived;\n\t// \t\t\t\t\t\t//const headerbytes = report.headerBytesSent;\n\t// \t\t\t\t\t\tconst packets = report.packetsReceived;\n\t// \t\t\t\t\t\tif(lastResult && lastResult.has(report.id)){\n\t// \t\t\t\t\t\t\tconst bitrate = 8 * (bytes - lastResult.get(report.id).bytesReceived) / (now - lastResult.get(report.id).timestamp);\n\t// \t\t\t\t\t\t\t//const headerrate = 8 * (headerBytes - lastResult.get(report.id).headerBytesSent) / (now - lastResult.get(report.id).timestamp);\n\t// \t\t\t\t\t\t\tbrPanel.update(bitrate);\n\t// \t\t\t\t\t\t}\n\t// \t\t\t\t\t}\n\t// \t\t\t\t});\n\t// \t\t\t\tlastResult = stats;\n\t// \t\t\t}\n\t// \t\t});\n\t//\n\t// \t},\n\t// \t1000);\n\t//\n\t// \treturn stats;\n\t// }\n}\n","import * as THREE from 'three'\r\nimport * as utils from \"./utils.mjs\";\r\nimport * as Retargeter from '@/retargeter.js';\r\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'\r\nimport store from '@/store'\r\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\r\nimport { GLTFExporter } from 'three/examples/jsm/exporters/GLTFExporter.js';\r\nimport { saveAs } from \"file-saver\";\r\nimport { VRMExpressionPresetName, VRMLoaderPlugin } from '@pixiv/three-vrm';\r\nimport { LoadingManager } from 'three/src/loaders/LoadingManager.js';\r\nimport { Parser } from '@/parser.js'\r\nimport { Client } from '@/WebRTCClient.js';\r\nimport { API } from 'aws-amplify';\r\nimport * as aws_helper from \"@/amplify_helper.js\";\r\nimport { zipSync } from 'fflate';\r\n//import { clone } from 'three/examples/jsm/utils/SkeletonUtils.js';\r\nvar emitter = require('events').EventEmitter;\r\nvar MediaStreamRecorder = require('msr');\r\nexport let engine_event = new emitter();\r\n//export {pubsub}\r\n\r\nvar WS_URL = 'wss://webrtc.rplab.online/';\r\n\r\nfunction getKeyByValue(object, value) {\r\n\treturn Object.keys(object).find(key => object[key] === value);\r\n }\r\n\r\nfunction getDateString()\r\n{\r\n\tconst dateObj = new Date();\r\n\tlet year = dateObj.getFullYear();\r\n\r\n\tlet month = dateObj.getMonth();\r\n\tmonth = ('0' + (month + 1)).slice(-2);\r\n\t// To make sure the month always has 2-character-format. For example, 1 => 01, 2 => 02\r\n\r\n\tlet date = dateObj.getDate();\r\n\tdate = ('0' + date).slice(-2);\r\n\t// To make sure the date always has 2-character-format\r\n\r\n\tlet hour = dateObj.getHours();\r\n\thour = ('0' + hour).slice(-2);\r\n\t// To make sure the hour always has 2-character-format\r\n\r\n\tlet minute = dateObj.getMinutes();\r\n\tminute = ('0' + minute).slice(-2);\r\n\t// To make sure the minute always has 2-character-format\r\n\r\n\tlet second = dateObj.getSeconds();\r\n\tsecond = ('0' + second).slice(-2);\r\n\t// To make sure the second always has 2-character-format\r\n\r\n\tconst time = `${year}_${month}_${date}_${hour}_${minute}_${second}`;\r\n\treturn time\r\n}\r\nfunction string_hash(str) \r\n{\r\n var hash = 0,\r\n i, chr;\r\n if (str.length === 0) return hash;\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n console.log(str+\" - \"+Math.abs(hash));\r\n return Math.abs(hash);\r\n}\r\nexport class Engine{\r\n\tconstructor()\r\n\t{\r\n\t\tconsole.log(\"Create Engine!!!!\");\r\n\t\tthis.container = document.getElementById('engine');\r\n\t\tthis.sizes;\r\n\t\tthis.scene;\r\n\t\tthis.current_model = undefined;\r\n\t\tthis.current_model_url;\r\n\t\tthis.current_json_url;\r\n\t\tthis.current_animated_clip\r\n\t\tthis.current_animated_object;\r\n\t\tthis.current_animated_object_url;\r\n\t\tthis.current_environment;\r\n\t\tthis.current_environment_urls;\r\n\t\tthis.current_3d_environments = [];\r\n\t\tthis.current_3d_environment_urls = [];\r\n\t\tthis.current_environment_name = \"\";\r\n\t\tthis.current_character_name = \"\";\r\n\t\tthis.camera;\r\n\t\tthis.renderer;\r\n\t\t//this.gui = new dat.GUI();\r\n\t\tthis.audio = document.querySelector('audio#audio2');\r\n\t\tthis.lightProbe;\r\n\t\tthis.bones = [];\r\n\t\tthis.morphs = [];\r\n\t\tthis.recording_morphs = [];\r\n\t\tthis.clock = new THREE.Clock()\r\n\t\tthis.animator = new utils.Animator();\r\n\t\t//this.stats;\r\n\t\tthis.controls;\r\n\t\tthis.API;\r\n this.em = new emitter();\r\n\t\tthis.current_project;\r\n\t\tthis.loaded_environments = [];\r\n\t\tthis.loaded_characters = [];\r\n\t\tthis.loaded_bones = [];\r\n\t\tthis.loaded_morphs = [];\r\n\t\t// this.retargeter = new MotionRetargeter();\r\n\t\tthis.retargeter = new Retargeter.Retargeter();\r\n\t\tthis.animation;\r\n\t\tthis.camera_motions = [];\r\n\t\tthis.camera_motion_object = undefined;\r\n\t\tthis.client;\r\n\t\tthis.skeleton;\r\n\t\tthis.hemiLight;\r\n\t\tthis.dirLight;\r\n\t\t//this.spotLight;\r\n\t\tthis.ground;\r\n\t\tthis.wrists = true;\r\n\t\t// this.web_parser;\r\n\t\tthis.skeleton_geometry;\r\n\t\tthis.ikRig_solved;\r\n\t\tthis.ikRig_chains;\r\n\t\tthis.ikRig_poles\r\n\t\tthis.boneContainer;\r\n\t\tthis.camera_index = 0;\r\n\t\tthis.screen;\r\n\t\tthis.slides = [];\r\n\t\tthis.slide_urls = [];\r\n\t\tthis.slide_id = 0;\r\n\t\tthis.time = 0;\r\n\t\tthis.fps_time =0;\r\n\t\tthis.fps_frames =0;\r\n\t\tthis.slide_speed = 1;\r\n\t\tthis.slide_delay =5;\r\n\t\tthis.mouse_down = false;\r\n\t\tthis.mouseX = 0;\r\n this.mouseY = 0;\r\n\t\tthis.rotation_gizmo = null;\r\n\t\tthis.translation_gizmo = null;\r\n\t\tthis.raycaster = new THREE.Raycaster()\r\n\t\tthis.gizmos = []\r\n\t\tthis.gizmo_mode = '';\r\n\t\tthis.scripts = {};\r\n\t\tthis.recording = false;\r\n\t\tthis.recording_list=[];\r\n\t\tthis.rec_id = -1;\r\n\t\tthis.mediaRecorder;\r\n\t\tthis.audioDataArray = [];\r\n\r\n\t\treturn ( ()=>\r\n\t\t{\r\n\t\t\t\r\n\t\t\tthis.initRenderer();\r\n\t\t\t//this.initStats();\r\n\t\t\tthis.defaultCamera = this.initCamera();\r\n\t\t\tthis.viewportCamera = this.defaultCamera;\r\n\t\t\tthis.cameras = {};\r\n\t\t\tthis.initScene();\r\n\t\t\tthis.initControls();\r\n\t\t\t//this.res_func = ()=>{this.onWindowResize();}\r\n\t\t\twindow.addEventListener( \"resize\", ()=>{this.onWindowResize()} );\r\n\t\t\twindow.addEventListener('orientationchange', function() {\r\n\t\t\t\tconsole.log(window.orientation);\r\n\t\t\t\tif(window.orientation==0)\r\n\t\t\t\t{\r\n\t\t\t\t\t//console.log(\"portrait\",window.innerHeight)\r\n\t\t\t\t\tthis.onWindowResize();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t//console.log(\"landscape\",window.innerHeight)\r\n\t\t\t\t\tthis.onWindowResize();\r\n\t\t\t\t}\r\n\t\t\t}, false);\r\n\r\n\r\n\t\t\tthis.onWindowResize();\r\n\t\t\r\n\r\n\t\t\t// });\r\n\t\t\tthis.update();\r\n\r\n\t\t\tengine_event.addListener('onLoadVRM', async function(urls,name,promiseResolve) {\r\n\t\t\t\tawait this.loadVRM(urls,name);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadGLB', async function(urls,name,promiseResolve) {\r\n\t\t\t\tawait this.loadCharacter(urls,name);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoad3DEnvironment', async function(name,remove,promiseResolve) {\r\n\t\t\t\tawait this.load3DEnvironment(name,remove);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadAnimatedModel', async function(name,promiseResolve) {\r\n\t\t\t\tawait this.loadAnimatedModel(name);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadEnvironment', async function(urls,name,promiseResolve) {\r\n\t\t\t\tawait this.loadEnvironment(urls,name);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadSlides', async function(urls,promiseResolve) {\r\n\t\t\t\tawait this.onLoadSlides(urls);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadSlide', async function(url,local) {\r\n\t\t\t\tawait this.onLoadSlide(url,local);\r\n\t\t\t\t//promiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadAnimation', async function(urls,promiseResolve) {\r\n\t\t\t\tawait this.loadAnimation(urls);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadCameraMotion', async function(urls,promiseResolve) {\r\n\t\t\t\tawait this.loadCameraMotion(urls);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\t// engine_event.addListener('onLoadProject', async function(json,char,env,promiseResolve) {\r\n\t\t\t// \tawait this.loadProject(json,char,env);\r\n\t\t\t// \tpromiseResolve()\r\n\t\t\t// }.bind(this));\r\n\t\t\tengine_event.addListener('onRotateCharacter', this.rotateCharacter.bind(this));\r\n\t\t\tengine_event.addListener('onDisableBackground', this.disableBackground.bind(this));\r\n\t\t\tengine_event.addListener('onToggleStats', this.ToggleStats.bind(this));\r\n\t\t\tengine_event.addListener('onSkeleton', function(visible) {\r\n\t\t\t\tthis.skeleton.visible = visible;\r\n\t\t\t\tthis.ikRigSkeleton.visible = visible;\r\n\t\t\t\tthis.ikRigSkeletonSolved.visible = visible;\r\n\t\t\t\tthis.ikRigPoles.visible = visible;\r\n\t\t\t\t// if(this.retargeter.ikRig.height>0) \r\n\t\t\t\t// \tthis.skeleton.visible = false;\r\n\t\t\t\t// else{\r\n\t\t\t\t// \tthis.ikRigSkeleton.visible = false;\r\n\t\t\t\t// \tthis.ikRigSkeletonSolved.visible = false;\r\n\t\t\t\t// \tthis.ikRigPoles.visible = false;\r\n\t\t\t\t// }\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onWrist', function(val) {\r\n\t\t\t\tthis.wrists = val;\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onVolume', function(buffer) {\r\n\t\t\t\tconsole.log(\"change volume\");\r\n\t\t\t\tthis.client.send(buffer);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onCalibrate', function(buffer) {\r\n\t\t\t\tconsole.log(\"calibrate\")\r\n\t\t\t\tthis.client.send(buffer);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onSetStage', this.setStage.bind(this));\r\n\t\t\tengine_event.addListener('onInitStats', this.initStats.bind(this));\r\n\r\n\t\t\tengine_event.addListener('onConnect', async function(room,promiseResolve) {\r\n\t\t\t\tthis.audio.load();\r\n\t\t\t\t// this.web_parser.ConnectClick(room);\r\n\t\t\t\tif(!this.client.isConnected()){\r\n\t\t\t\t\tthis.client.connect(WS_URL + room);\r\n\t\t\t\t\tthis.track_user();\r\n\r\n\t\t\t\t\tthis.rec_id = -1;\r\n\t\t\t\t\tthis.rec_time=0;\r\n\t\t\t\t\tthis.mixer.stopAllAction();\r\n\t\t\t\t\tlet idle = this.mixer.clipAction( this.default_animation );\r\n\t\t\t\t\tidle.play();\r\n\t\t\t\t\tthis.retargeter.ikRig.height = 0;\r\n\t\t\t\t\t// if(this.skeleton.visible || this.ikRigSkeleton.visible)\r\n\t\t\t\t\t// {\r\n\t\t\t\t\t// \tthis.skeleton.visible = false;\r\n\t\t\t\t\t// \tthis.ikRigSkeleton.visible = true;\r\n\t\t\t\t\t// \tthis.ikRigPoles.visible = true;\r\n\t\t\t\t\t// \tthis.ikRigSkeletonSolved.visible = true;\r\n\t\t\t\t\t\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthis.client.close();\r\n\t\t\t\t\tengine_event.emit(\"disconnect\");\r\n\t\t\t\t\t// if(this.skeleton.visible || this.ikRigSkeleton.visible)\r\n\t\t\t\t\t// {\r\n\t\t\t\t\t// \tthis.skeleton.visible = true;\r\n\t\t\t\t\t// \tthis.ikRigSkeleton.visible = false;\r\n\t\t\t\t\t// \tthis.ikRigPoles.visible = false;\r\n\t\t\t\t\t// \tthis.ikRigSkeletonSolved.visible = false;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t//this.mediaRecorder = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\t\r\n\t\t\tengine_event.addListener(\"isConnected\", function(callback){\r\n\t\t\t\tcallback(this.client.isConnected());\r\n\t\t\t}.bind(this));\r\n\r\n\t\t\tengine_event.addListener('onCameraMotion', function(index) {\r\n\t\t\t\tthis.onCameraMotion(index)\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onSaveProject',function(promiseResolve) {\r\n\t\t\t\tlet output = this.saveProject();\r\n\t\t\t\tpromiseResolve(output)\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('screenshot',function(promiseResolve) {\r\n\r\n\t\t\t\tthis.renderer.setSize(300,300);\r\n\t\t\t\tthis.viewportCamera.aspect = 1\r\n\t\t\t\tthis.viewportCamera.updateProjectionMatrix()\r\n\t\t\t\tthis.renderer.render(this.scene, this.viewportCamera);\r\n\t\t\t\tvar strMime = \"image/jpeg\";\r\n\t\t\t\tlet output = this.renderer.domElement.toDataURL(strMime);\r\n\t\t\t\tpromiseResolve(output.replace(strMime, \"image/octet-stream\"))\r\n\t\t\t\tthis.renderer.setSize(this.container.clientWidth,this.container.clientHeight)\r\n\t\t\t\tthis.viewportCamera.aspect = this.container.clientWidth/this.container.clientHeight;\r\n\t\t\t\tthis.viewportCamera.updateProjectionMatrix()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('getSlides',function(promiseResolve) {\r\n\t\t\t\tpromiseResolve(this.slides)\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onLoadProject', async function(json,promiseResolve) {\r\n\t\t\t\tawait this.loadProject(json);\r\n\t\t\t\tpromiseResolve()\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onMode', function(mode) {\r\n\t\t\t\tif(mode==this.gizmo_mode)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.gizmo_mode = '';\r\n\t\t\t\t\tthis.scene.remove( this.translation_gizmo );\r\n\t\t\t\t\tthis.scene.remove( this.rotation_gizmo );\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif(mode==\"rotate\")\r\n\t\t\t\t{\r\n\t\t\t\t\t//this.rotation_gizmo.visible = true;\r\n\t\t\t\t\t//this.translation_gizmo.visible = false;\r\n\t\t\t\t\tthis.scene.add( this.rotation_gizmo );\r\n\t\t\t\t\tthis.scene.remove( this.translation_gizmo );\r\n\t\t\t\t}\r\n\t\t\t\telse if(mode == \"translate\")\r\n\t\t\t\t{\r\n\t\t\t\t\t//this.rotation_gizmo.visible = false;\r\n\t\t\t\t\t//this.translation_gizmo.visible = true;\r\n\t\t\t\t\tthis.scene.remove( this.rotation_gizmo );\r\n\t\t\t\t\tthis.scene.add( this.translation_gizmo );\r\n\t\t\t\t}\r\n\t\t\t\tthis.gizmo_mode = mode;\r\n\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('swap_slides',function(oldIndex,newIndex){\r\n\t\t\t\t\r\n\t\t\t\tlet temp = this.slides[oldIndex];\r\n\t\t\t\tthis.slides.splice(oldIndex,1);\r\n\t\t\t\tthis.slides.splice(newIndex, 0, temp);\r\n\r\n\t\t\t\tlet temp2 = this.slide_urls[oldIndex];\r\n\t\t\t\tthis.slide_urls.splice(oldIndex,1);\r\n\t\t\t\tthis.slide_urls.splice(newIndex, 0, temp2);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('swap_cameras',function(oldIndex,newIndex){\r\n\t\t\t\t\r\n\t\t\t\tlet temp = this.cameras[oldIndex];\r\n\t\t\t\tthis.cameras.splice(oldIndex,1);\r\n\t\t\t\tthis.cameras.splice(newIndex, 0, temp);\r\n\r\n\t\t\t\t\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('delete_slide',function(index){\r\n\t\t\t\t\r\n\t\t\t\tthis.slides.splice(index, 1);\r\n\t\t\t\tthis.slide_urls.splice(index, 1);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onSlideSpeed',function(speed){\r\n\t\t\t\tthis.slide_speed = speed/100;\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onSlideId',function(index){\r\n\t\t\t\tthis.time = this.slide_delay;\r\n\t\t\t\tthis.slide_id = index;\r\n\t\t\t\t\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onExport',async function(index, name, promiseResolve){\r\n\r\n\t\t\t\tthis.rec_id = index;\r\n\t\t\t\tthis.rec_time=0;\r\n\t\t\t\tthis.mixer.stopAllAction();\r\n\t\t\t\tlet idle = this.mixer.clipAction( this.recording_list[index].clip );\r\n\t\t\t\tidle.play();\r\n\r\n\t\t\t\t\r\n\t\t\t\tlet tracks = [];\r\n\t\t\t\tlet mr = this.retargeter;\r\n\t\t\t\tlet export_skeleton_position = [];\r\n\t\t\t\tlet export_skeleton_times = []\r\n\t\t\t\tlet export_skeleton_rotations = [];\r\n\t\t\t\tlet export_skeleton_morphs =[];\r\n\t\t\t\tlet _rawHumanBones = [];\r\n\t\t\t\tconst morph_map = new Map();\r\n\t\t\t\tif(this.current_model.matrix==undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\t_rawHumanBones = Retargeter.VRMSkeleton.getRawBones(this.current_model);\r\n\r\n\t\t\t\t\tthis.current_model.springBoneManager._objectSpringBonesMap.forEach((value, key) => {\r\n\t\t\t\t\t\t_rawHumanBones.push(key);\r\n\t\t\t\t\t\tvalue;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tfor ( let i = 0; i < _rawHumanBones.length; i ++ ) {\r\n\t\t\t\t\t\texport_skeleton_rotations.push([]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.current_model.expressionManager._expressions.forEach((value, key) => {\r\n\r\n\t\t\t\t\t\tif(key!=undefined)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvalue._binds.forEach((bind) => { \r\n\t\t\t\t\t\t\t\tbind.primitives.forEach((primitive) => morph_map.set(primitive.name, primitive));\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tfor ( let i = 0; i < this.retargeter.target_bones.length; i ++ ) {\r\n\t\t\t\t\t\texport_skeleton_rotations.push([]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor ( let i = 0; i < this.morphs.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfor(let b = 0; b < this.morphs[i].length; b++)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(this.morphs[i][b].morph!=undefined)\r\n\t\t\t\t\t\t\t\tmorph_map.set(this.morphs[i][b].morph.name, this.morphs[i][b].morph)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\tmorph_map.forEach(() => { \r\n\t\t\t\t\texport_skeleton_morphs.push([]);\r\n\t\t\t\t} )\r\n\r\n\t\t\t\tfor(let t=0; t0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfor(let bb = 0; bb < child.morphTargetInfluences.length; bb++)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tfor(let j=0; j { \r\n\t\t\t\t\t\texport_skeleton_morphs[m] = export_skeleton_morphs[m].concat(value.morphTargetInfluences.map((x) => x));\r\n\t\t\t\t\t\tm++;\r\n\t\t\t\t\t} )\r\n\t\t\t\t}\r\n\t\t\t\tif(this.current_model.matrix==undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst positionKF = new THREE.VectorKeyframeTrack( _rawHumanBones[0].name+'.position', export_skeleton_times.map((x) => x), export_skeleton_position.map((x) => x));\r\n\t\t\t\t\ttracks.push(positionKF);\r\n\t\t\t\t\tfor ( let i = 0; i < _rawHumanBones.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(_rawHumanBones[i]!=undefined)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tconst quaternionKF = new THREE.QuaternionKeyframeTrack( _rawHumanBones[i].name+'.quaternion', export_skeleton_times.map((x) => x), export_skeleton_rotations[i].map((x) => x));\r\n\t\t\t\t\t\t\ttracks.push(quaternionKF);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tconst positionKF = new THREE.VectorKeyframeTrack( mr.target_bones[0].name+'.position', export_skeleton_times.map((x) => x), export_skeleton_position.map((x) => x));\r\n\t\t\t\t\ttracks.push(positionKF);\r\n\t\t\t\t\tfor ( let i = 0; i < this.retargeter.target_bones.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(mr.target_bones[i]!=undefined)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tconst quaternionKF = new THREE.QuaternionKeyframeTrack( mr.target_bones[i].name+'.quaternion', export_skeleton_times.map((x) => x), export_skeleton_rotations[i].map((x) => x));\r\n\t\t\t\t\t\t\ttracks.push(quaternionKF);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet m=0;\r\n\t\t\t\tmorph_map.forEach((key) => { \r\n\t\t\t\t\tconst morphsKF = new THREE.NumberKeyframeTrack(key.name+'.morphTargetInfluences',export_skeleton_times.map((x) => x),export_skeleton_morphs[m].map((x)=>x));\r\n\t\t\t\t\ttracks.push(morphsKF);\r\n\t\t\t\t\tm++;\r\n\t\t\t\t} )\r\n\t\t\t\tconst clip = new THREE.AnimationClip( \"RedPillGoAnimClip\", this.recording_list[index].clip.duration, tracks );\r\n\t\t\t\tthis.current_model.animations = [clip];\r\n\r\n\t\t\t\tconst wav = new Blob( [ this.recording_list[index].audio ], { type: 'audio/wav' } );\r\n\r\n\t\t\t\tthis.exportCharacter(wav,string_hash(name),promiseResolve);\r\n\r\n\t\t\t\tif(this.current_model.matrix==undefined)\r\n\t\t\t\t\tawait this.loadVRM(this.current_model_url,this.current_model_url);\r\n\r\n\t\t\t\t//let mediaRecorder = new MediaStreamRecorder(new MediaStream());\r\n\t\t\t\t//mediaRecorder.mimeType = 'audio/wav';\r\n\t\t\t\t//mediaRecorder.save(this.recording_list[index].audio,\"audio.wav\");\r\n\t\t\t\t\r\n\t\t\t\tthis.rec_id = -1;\r\n\t\t\t\tthis.rec_time=0;\r\n\t\t\t\tthis.mixer.stopAllAction();\r\n\t\t\t\tidle = this.mixer.clipAction( this.default_animation);\r\n\t\t\t\tidle.play();\r\n\t\t\t\tlet etag = this.current_model.etag;\r\n\t\t\t\tengine_event.emit('recording_downloaded',etag,this.recording_list[index].clip);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('delete_rec',function(index){\r\n\t\t\t\t\r\n\t\t\t\tthis.recording_list.splice(index, 1);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onRecord', function(rec) {\r\n\t\t\t\tconsole.log(\"onRecord\")\r\n\t\t\t\tif(rec==true)\r\n\t\t\t\t{\r\n\r\n\t\t\t\t\tthis.rec_time = 0;\r\n\t\t\t\t\tthis.audioDataArray = [];\r\n\t\t\t\t\tthis.recording_skeleton_position = [];\r\n\t\t\t\t\tthis.recording_skeleton_rotations = [];\r\n\t\t\t\t\tfor ( let i = 0; i < this.retargeter.source_bones.length; i ++ ) {\r\n\t\t\t\t\t\tthis.recording_skeleton_rotations.push([]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.recording_skeleton_morphs = [];\r\n\t\t\t\t\tthis.recording_skeleton_times = [];\r\n\t\t\t\t\tif(this.mediaRecorder!=undefined)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.mediaRecorder.start(60*60*1000);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlet names = Retargeter.SourceSkeleton.getNames();\r\n\t\t\t\t\tlet tracks = [];\r\n\t\t\t\t\tconst positionKF = new THREE.VectorKeyframeTrack( names[0]+'.position', this.recording_skeleton_times.map((x) => x), this.recording_skeleton_position.map((x) => x));\r\n\t\t\t\t\ttracks.push(positionKF);\r\n\t\t\t\t\tfor ( let i = 0; i < this.retargeter.source_bones.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tconst quaternionKF = new THREE.QuaternionKeyframeTrack( names[i]+'.quaternion', this.recording_skeleton_times.map((x) => x), this.recording_skeleton_rotations[i].map((x) => x));\r\n\t\t\t\t\t\ttracks.push(quaternionKF);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst morphsKF = new THREE.NumberKeyframeTrack (names[0]+'.morphTargetInfluences', this.recording_skeleton_times.map((x) => x),this.recording_skeleton_morphs.map((x) => x));\r\n\t\t\t\t\ttracks.push(morphsKF);\r\n\t\t\t\t\tconst clip = new THREE.AnimationClip( \"Rec_\"+getDateString(), -1, tracks );\r\n\t\t\t\t\t\r\n\t\t\t\t\tengine_event.emit('recording',clip);\r\n\t\t\t\t\tlet audioData = undefined;\r\n\t\t\t\t\tthis.recording_list.push({clip:clip,audio:audioData});\r\n\t\t\t\t\tif(this.mediaRecorder!=undefined)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet self = this;\r\n\t\t\t\t\t\tthis.mediaRecorder.ondataavailable = function (blob) {\r\n\t\t\t\t\t\t\t// POST/PUT \"Blob\" using FormData/XHR2\r\n\t\t\t\t\t\t\t//var blobURL = URL.createObjectURL(blob);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tself.audioDataArray.push(blob);\r\n\t\t\t\t\t\t\tself.recording_list[self.recording_list.length-1].audio = new Blob(self.audioDataArray,{type: \"audio/webm\"});\r\n\t\t\t\t\t\t\t//document.write('' + blobURL + '');\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tthis.mediaRecorder.stop();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tthis.recording = rec;\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('onRecId',function(index){\r\n\t\t\t\t\r\n\t\t\t\tthis.rec_id = index;\r\n\t\t\t\tthis.rec_time=0;\r\n\t\t\t\tthis.mixer.stopAllAction();\r\n\t\t\t\tlet idle;\r\n\t\t\t\tlet audio_replay = document.querySelector('audio#replay');\r\n\t\t\t\tif(this.rec_id>-1)\r\n\t\t\t\t{\r\n\t\t\t\t\tidle = this.mixer.clipAction( this.recording_list[index].clip );\r\n\t\t\t\t\tif(this.recording_list[index].audio!=undefined)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tconst audioURL = URL.createObjectURL(this.recording_list[index].audio);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\taudio_replay.src = audioURL;\r\n\t\t\t\t\t\taudio_replay.loop = true;\r\n\t\t\t\t\t\taudio_replay.oncanplay=()=>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\taudio_replay.play();\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse \r\n\t\t\t\t{\r\n\t\t\t\t\tidle = this.mixer.clipAction( this.default_animation );\r\n\t\t\t\t\taudio_replay.pause();\r\n\t\t\t\t}\r\n\t\t\t\tidle.play();\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}.bind(this));\r\n\t\t\t// this.web_parser = new Parser('');\r\n\t\t\t// this.web_parser.engine = this;\r\n\t\t\t// this.client = this.web_parser.client;\r\n\r\n\t\t\t//\r\n\t\t\tthis.lastTime = new Date();\r\n\t\t\tthis.client = new Client();//webrtc\r\n\t\t\tthis.client.addEventListener(\"message\", (e)=>{\r\n\t\t\t\tlet [type, data] = Parser.parse(e.data);\r\n\t\t\t\tthis.em.emit(type, data);\r\n\r\n\t\t\t\tvar endTime = new Date();\r\n\t\t\t\tvar timeDiff = endTime - this.lastTime; //in ms\r\n\t\t\t\t// strip the ms\r\n\t\t\t\ttimeDiff /= 1000;\r\n\t\t\t\t// get seconds \r\n\t\t\t\tvar seconds = Math.round(timeDiff);\r\n\t\t\t\t//console.log(seconds + \" seconds\");\r\n\t\t\t\tif(seconds>=60)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.lastTime = endTime;\r\n\t\t\t\t\tthis.track_user();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t\tthis.client.addEventListener(\"track\", (e) => {\r\n \r\n\t\t\t\t//console.log(\"track event \"+ e);\r\n\t\t\t\tif (e.data.track.kind === \"audio\")\r\n\t\t\t\t{\r\n\t\t\t\t\t//console.log(\"track event is audio \"+ e.data.streams[0]);\r\n\t\t\t\t\tthis.audio.srcObject = e.data.streams[0];\r\n\t\t\t\t\tthis.audio.loop = false;\r\n\t\t\t\t\tthis.mediaRecorder = new MediaStreamRecorder(e.data.streams[0]);\r\n\t\t\t\t\tthis.mediaRecorder.mimeType = 'audio/wav'; // check this line for audio/wav\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.audio.oncanplay=()=>{this.audio.play();};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.client.addEventListener(\"room\", function (e) {\r\n\t\t\t\tconsole.log('Connected to room: ' + e.data);\r\n\t\t\t\t//parent.$emit('room',data);\r\n\t\t\t\tengine_event.emit('room',e.data);\t \r\n\t\t\t});\r\n\t\t\tthis.em.addListener(\"ikrig\", (data)=>{\r\n\t\t\t\tthis.retargeter.setIKRig(data);\r\n\t\t\t});\r\n\t\t\tthis.em.addListener(\"rotations\", (data)=>{\r\n\t\t\t\tthis.retargeter.setRotations(data);\r\n\t\t\t});\r\n\t\t\tthis.em.addListener(\"translations\", (data)=>{\r\n\t\t\t\tthis.retargeter.setTranslation(...data);\r\n\t\t\t});\r\n\t\t\tthis.em.addListener(\"morph\", (function(data){\r\n\t\t\t\tfor(let bb = 0; bb < this.morphs.length; bb++){\r\n\t\t\t\t\tfor(let j=0; j=data.length) continue;\r\n\t\t\t\t\tconst x = data[b];\r\n\t\t\t\t\tthis.recording_morphs[b] = x;\r\n\t\t\t\t\tfor(let j=0; j{});\r\n\r\n\t\t\tthis.em.addListener('mic', function (mic) {\r\n\t\t\t\t//console.log('mic: '+mic);\r\n\t\t\t\t//parent.$emit('mic',mic);\r\n\t\t\t\tengine_event.emit('mic', mic);\r\n\t\t\t});\r\n\r\n\t\t\r\n\t\t\tengine_event.addListener('addObject', function(obj){\r\n\t\t\t\tthis.scene.add(obj);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('removeObject', function(obj){\r\n\t\t\t\tthis.scene.remove(obj);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('addScript', function(obj, script){\r\n\t\t\t\tthis.addScript(obj, script);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('removeScript', function(obj, script){\r\n\t\t\t\tthis.removeScript(obj, script);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('addCamera', function(cam){\r\n\t\t\t\tthis.cameras[cam.uuid]=cam;\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('removeCamera', function(cam){\r\n\t\t\t\tdelete this.cameras[cam.uuid];\r\n\t\t\t\tif(Object.keys(this.cameras).length==0)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.viewportCamera = this.defaultCamera;\r\n\t\t\t\t\tthis.onWindowResize();\r\n\t\t\t\t}\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('resetCamera', function(){\r\n\t\t\t\tthis.viewportCamera = this.defaultCamera;\r\n\t\t\t\tthis.onWindowResize();\r\n\t\t\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('setViewportCamera', function(uuid){\r\n\r\n\t\t\t\tthis.viewportCamera = this.cameras[uuid];\r\n\t\t\t\tthis.onWindowResize();\r\n\t\t\t\t//var target = this.controls.target;\r\n\t\t\t\t//this.controls = new OrbitControls( this.viewportCamera, this.renderer.domElement );\r\n\t\t\t\t//this.controls.target.set( target.x,target.y,target.z );\r\n\t\t\t\t//this.controls.update();\r\n\r\n\t\t\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('getViewportCamera', function(callback){\r\n\t\t\t\tcallback(this.viewportCamera);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener('getLookAtTarget', function(callback){\r\n\t\t\t\tcallback(this.retargeter.target_bones[11]);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener(\"hasScreen\", function(callback){\r\n\t\t\t\tcallback(this.screen!=undefined);\r\n\t\t\t}.bind(this));\r\n\t\t\tengine_event.addListener(\"get_etag\", function(callback){\r\n\t\t\t\t//callback(this.current_model.matrix?this.current_model.etag:'vrm');\r\n\t\t\t\tcallback([this.current_model.etag, this.current_model.matrix==undefined])\r\n\t\t\t}.bind(this));\r\n\r\n\t\t\treturn this;\r\n\t\t})();\r\n\t}\r\n\tasync track_user(){\r\n\t\tlet char_name = this.current_character_name;\r\n\t\tif(char_name==undefined)\r\n\t\tchar_name = \"Unknown\"\r\n\t\tconst myInit = {\r\n\t\t\theaders: { \r\n\t\t\t\"Content-Type\":\"application/json\"\r\n\t\t\t},\r\n\t\t\tbody: {\r\n\t\t\t\t\"last_character\": this.current_character_name,\r\n\t\t\t\t\"last_environment\": this.current_environment_name\r\n\t\t\t}\r\n\t\t}\r\n\t\ttry{\r\n\t\t\tawait API.put('rpgUserProfile','/profile', myInit);//don't await\r\n\t\t\t//console.log(res);\r\n\t\t}catch(error)\r\n\t\t{\r\n\t\t\tconsole.log(error);\r\n\t\t}\r\n\t}\r\n\r\n\tdispose()\r\n\t{\r\n\t\tthis.renderer.dispose();\r\n\t}\r\n\tinitScene()\r\n\t{\r\n\t\tthis.scene = new THREE.Scene()\r\n\t\tthis.scene.background = new THREE.Color( 0xa0a0a0 );\r\n\t\t\r\n\t\tthis.hemiLight = new THREE.HemisphereLight( 0xffffff, 0x444444 );\r\n\t\tthis.hemiLight.position.set( 0, 20, 0 );\r\n\t\t\r\n\r\n\t\tconst targetObject = new THREE.Object3D();\r\n\t\ttargetObject.position.set(0, 0, -3 );\r\n\t\tthis.scene.add(targetObject);\r\n\r\n\t\tthis.skeleton_geometry = new THREE.BufferGeometry();\r\n\t\tthis.ikRig_chains = new THREE.BufferGeometry();\r\n\t\tthis.ikRig_solved = new THREE.BufferGeometry();\r\n\t\tthis.ikRig_poles = new THREE.BufferGeometry();\r\n\t\tthis.recording_skeleton_position = [];\r\n\t\tthis.recording_skeleton_rotations = [];\r\n\t\tthis.recording_morphs = [];\r\n\t\tfor ( let i = 0; i < 17+52; i ++ ) {\r\n\t\t\tthis.recording_morphs.push(0.0);\r\n\t\t}\r\n\r\n\t\tthis.recording_skeleton_morphs = [];\r\n\t\tthis.recording_skeleton_times = [];\r\n\t\tconst vertices = [];\r\n\t\tconst vertices2 = [];\r\n\t\tconst vertices3 = [];\r\n\t\tconst vertices4 = [];\r\n\t\tconst colors = [];\r\n\t\tconst colors2 = [];\r\n\t\tconst colors3 = [];\r\n\t\tconst colors4 = [];\r\n\t\tconst color1 = new THREE.Color( 1, 0.765, 0.309 );\r\n\t\tconst color2 = new THREE.Color( 1, 0.765, 0.309 );\r\n\t\tconst color3 = new THREE.Color( 0.309, 0.765, 1 );\r\n\t\tconst color4 = new THREE.Color( 1, 0.0, 0.309 );\r\n\t\tfor ( let i = 0; i < this.retargeter.source_bones.length; i ++ ) {\r\n\t\t\t\tvertices.push( 0, 0, 0 );\r\n\t\t\t\tvertices.push( 0, 0, 0 );\r\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\r\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\r\n\t\t\t\tthis.recording_skeleton_rotations.push([]);\r\n\t\t}\r\n\t\tfor(let i = 0; i < 16; i ++)\r\n\t\t{\r\n\t\t\tvertices2.push( 0, 0, 0 );\r\n\t\t\tvertices2.push( 0, 0, 0 );\r\n\t\t\tcolors2.push( color1.r, color1.g, color1.b );\r\n\t\t\tcolors2.push( color2.r, color2.g, color2.b );\r\n\t\t}\r\n\t\tfor(let i = 0; i < 12*2+10*3; i ++)\r\n\t\t{\r\n\t\t\tvertices3.push( 0, 0, 0 );\r\n\t\t\tvertices3.push( 0, 0, 0 );\r\n\t\t\tcolors3.push( color3.r, color3.g, color3.b );\r\n\t\t\tcolors3.push( color3.r, color3.g, color3.b );\r\n\t\t}\r\n\t\tfor(let i = 0; i < 16; i ++)\r\n\t\t{\r\n\t\t\tvertices4.push( 0, 0, 0 );\r\n\t\t\tvertices4.push( 0, 0, 0 );\r\n\t\t\tcolors4.push( color4.r, color4.g, color4.b );\r\n\t\t\tcolors4.push( color4.r, color4.g, color4.b );\r\n\t\t}\r\n\r\n\t\tthis.skeleton_geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );\r\n\t\tthis.skeleton_geometry.setAttribute( 'color', new THREE.Float32BufferAttribute( colors, 3 ) );\r\n\t\tthis.ikRig_chains.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices2, 3 ) );\r\n\t\tthis.ikRig_chains.setAttribute( 'color', new THREE.Float32BufferAttribute( colors2, 3 ) );\r\n\t\tthis.ikRig_solved.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices3, 3 ) );\r\n\t\tthis.ikRig_solved.setAttribute( 'color', new THREE.Float32BufferAttribute( colors3, 3 ) );\r\n\t\tthis.ikRig_poles.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices4, 3 ) );\r\n\t\tthis.ikRig_poles.setAttribute( 'color', new THREE.Float32BufferAttribute( colors4, 3 ) );\r\n\r\n\t\tconst skel_material = new THREE.LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true , linewidth :3 } );\r\n\t\tthis.skeleton = new THREE.LineSegments( this.skeleton_geometry, skel_material );\r\n\t\tthis.scene.add( this.skeleton );\r\n\t\tthis.ikRigSkeleton = new THREE.LineSegments( this.ikRig_chains, skel_material );\r\n\t\tthis.scene.add( this.ikRigSkeleton );\r\n\t\tthis.ikRigSkeletonSolved = new THREE.LineSegments( this.ikRig_solved, skel_material );\r\n\t\tthis.scene.add( this.ikRigSkeletonSolved );\r\n\t\tthis.ikRigPoles = new THREE.LineSegments( this.ikRig_poles, skel_material );\r\n\t\tthis.scene.add( this.ikRigPoles );\r\n\r\n\t\t//this.skeleton = new THREE.SkeletonHelper( this.retargeter.source_bones[0] );\r\n\t\t//this.scene.add( this.skeleton );\r\n\t\tthis.skeleton.visible = false;\r\n\t\tthis.ikRigSkeleton.visible = false;\r\n\t\tthis.ikRigSkeletonSolved.visible = false;\r\n\t\tthis.ikRigPoles.visible = false;\r\n\t\tthis.boneContainer = new THREE.Group();\r\n\t\tthis.boneContainer.add( this.retargeter.source_bones[0] );\r\n\t\tthis.scene.add( this.boneContainer );\r\n\r\n\t\t\r\n\t\tthis.dirLight = new THREE.DirectionalLight( 0xffffff );\r\n\t\t//this.dirLight = new THREE.PointLight( 0xffffff, 2, 100 );\r\n\t\tthis.dirLight.position.set( 0, 5, 3 );\r\n\t\tthis.dirLight.target = targetObject;\r\n\t\tthis.dirLight.castShadow = true;\r\n\t\t// this.dirLight.shadow.camera.top = 1;\r\n\t\t// this.dirLight.shadow.camera.bottom = -1;\r\n\t\t// this.dirLight.shadow.camera.left = -1;\r\n\t\t// this.dirLight.shadow.camera.right = 1;\r\n\t\t// this.dirLight.shadow.camera.near = 0.01;\r\n\t\t// this.dirLight.shadow.camera.far = 200;\r\n\t\t//this.dirLight.shadow.bias = 0.00000001;\r\n\r\n\t\t//Set up shadow properties for the light\r\n\t\tthis.dirLight.shadow.mapSize.width = 512; // default\r\n\t\tthis.dirLight.shadow.mapSize.height = 512; // default\r\n\r\n\r\n\t\tthis.scene.add( this.dirLight );\r\n\r\n\t\t// this.spotLight = new THREE.SpotLight( 0xffffff );\r\n\t\t// this.spotLight.position.set( 0, 1, 1 );\r\n\t\t// const targetObject = new THREE.Object3D();\r\n\t\t// targetObject.position.set(0,0,0);\r\n\t\t// this.scene.add(targetObject);\r\n\t\t// this.spotLight.target = targetObject;\r\n\t\t// this.spotLight.castShadow = true;\r\n\r\n\t\t// this.spotLight.shadow.mapSize.width = 1024;\r\n\t\t// this.spotLight.shadow.mapSize.height = 1024;\r\n\r\n\t\t// this.spotLight.shadow.camera.near = 500;\r\n\t\t// this.spotLight.shadow.camera.far = 4000;\r\n\t\t// this.spotLight.shadow.camera.fov = 30;\r\n\r\n\t\t//this.spotLight.shadow.camera.top = 5;\r\n\t\t//this.spotLight.shadow.camera.bottom = - 5;\r\n\t\t//this.spotLight.shadow.camera.left = - 5;\r\n\t\t//this.spotLight.shadow.camera.right = 5;\r\n\t\t// this.spotLight.shadow.camera.near = 0.0001;\r\n\t\t// this.spotLight.shadow.camera.far = 400;\r\n\t\t//this.spotLight.shadow.bias = 0.00000000001;\r\n\r\n\t\t// this.scene.add( this.spotLight );\r\n\r\n\t\tthis.dirLight.shadow.camera.top = 7;\r\n\t\tthis.dirLight.shadow.camera.bottom = -7;\r\n\t\tthis.dirLight.shadow.camera.left = -5;\r\n\t\tthis.dirLight.shadow.camera.right = 5;\r\n\t\tthis.dirLight.shadow.camera.near = 0.1;\r\n\t\tthis.dirLight.shadow.camera.far = 20;\r\n\t\tthis.dirLight.shadow.bias = -0.005;\r\n\t\t// ground\r\n\t\tthis.ground = new THREE.Mesh( new THREE.PlaneGeometry( 100, 100 ), new THREE.ShadowMaterial( { opacity: 0.3 } ) );\r\n\t\tthis.ground.rotation.x = - Math.PI / 2;\r\n\t\tthis.ground.receiveShadow = true;\r\n\t\tthis.scene.add( this.ground );\r\n\r\n\t\tconst grid = new THREE.GridHelper( 100, 20, 0x00ff00, 0x00ff00 );\r\n\t\tgrid.material.opacity = 1;//0.2;\r\n\t\tgrid.material.transparent = true;\r\n\r\n\t\tconst geometry = new THREE.BoxGeometry( 1, 1, 1 );\r\n\t\tconst material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );\r\n\t\tmaterial.depthTest = false;\r\n\t\tconst material2 = new THREE.MeshBasicMaterial( {color: 0xff0000} );\r\n\t\tmaterial2.depthTest = false;\r\n\t\tconst left_cube = new THREE.Mesh( geometry, material );\r\n\t\tconst right_cube = new THREE.Mesh( geometry, material );\r\n\t\tconst left_knee = new THREE.Mesh( geometry, material );\r\n\t\tconst right_knee = new THREE.Mesh( geometry, material );\r\n\t\tconst helper_root = new THREE.Mesh( geometry, material );\r\n\t\tconst helper_root2 = new THREE.Mesh( geometry, material2 );\r\n\t\t\r\n\t\tright_cube.position.set(-10,0,0);\r\n\t\tleft_cube.position.set(10,0,0);\r\n\t\tright_knee.position.set(-10,0,0);\r\n\t\tleft_knee.position.set(10,0,0);\r\n\t\thelper_root.position.set(0,0,0);\r\n\t\thelper_root2.position.set(0,0,0);\r\n\t\tleft_cube.renderOrder =100;\r\n\t\tright_cube.renderOrder =100;\r\n\t\tleft_knee.renderOrder =100;\r\n\t\tright_knee.renderOrder =100;\r\n\t\thelper_root.renderOrder = 100;\r\n\t\thelper_root2.renderOrder = 100;\r\n\t\t// this.scene.add( left_cube );\r\n\t\t// this.scene.add( right_cube );\r\n\t\t// this.scene.add( left_knee );\r\n\t\t// this.scene.add( right_knee );\r\n\t\t//this.scene.add( helper_root );\r\n\t\t// this.scene.add( helper_root2 );\r\n\t\tthis.retargeter.lHelperFoot = left_cube;\r\n\t\tthis.retargeter.rHelperFoot = right_cube;\r\n\t\tthis.retargeter.lHelperKnee = left_knee;\r\n\t\tthis.retargeter.rHelperKnee = right_knee;\r\n\t\tthis.retargeter.rHelperRoot = helper_root;\r\n\t\tthis.retargeter.rHelperRoot2 = helper_root2;\r\n\t\t//this.scene.add( grid );\r\n\t}\r\n\tinitCamera()\r\n\t{\r\n\t\t//this.camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );\r\n\t\t//this.camera.position.set( 0, 100, 300 );\r\n\t\tconst camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 20 );\r\n\t\tcamera.near = 10;\r\n\t\tcamera.far = 200;\r\n\t\tcamera.setFocalLength(30);\r\n\t\tcamera.position.set( 0, 1, 4 );\r\n\t\tcamera.lookAt( 0, 0, 1 );\r\n\t\treturn camera;\r\n\t}\r\n\tonMouseMove(event)\r\n\t{\r\n\t\tif (!this.engine.mouseDown) {\r\n return;\r\n }\r\n\t\tif(this.engine.current_model==null) return;\r\n\t\tevent.preventDefault();\r\n\t\tlet model = this.engine.current_model;\r\n\t\tif(!model.matrix)\r\n\t\t\tmodel = this.engine.current_model.scene;\r\n\t\t\r\n\t\tvar deltaX = event.clientX - this.engine.mouseX;\r\n\t\t//var deltaY = event.clientY - this.engine.mouseY;\r\n\t\tthis.engine.mouseX = event.clientX;\r\n\t\tthis.engine.mouseY = event.clientY;\r\n\t\tif(this.engine.gizmo_mode=='rotate')\r\n\t\t{\r\n\t\t\tmodel.rotation.y+=deltaX / 100;\r\n\t\t\tthis.engine.gizmos[0].rotation.z = model.rotation.y;\r\n\t\t}\r\n\t\telse if(this.engine.gizmo_mode=='translate')\r\n\t\t{\t\r\n\t\t\tconst mouse = {\r\n\t\t\t\tx: (event.clientX / this.clientWidth) * 2 - 1,\r\n\t\t\t\ty: -(event.clientY / this.clientHeight) * 2 + 1,\r\n\t\t\t}\r\n\t\t\t// = new THREE.Raycaster()\r\n\t\t\tthis.engine.raycaster.setFromCamera(mouse, this.engine.viewportCamera)\r\n\t\t\t\r\n\t\t\tconst intersect = this.engine.raycaster.intersectObject(this.engine.intersection_ground, false)\r\n\t\t\t\r\n\t\t\tif(intersect.length > 0)\r\n\t\t\t{\r\n\t\t\t\t\r\n\t\t\t\tmodel.position.copy(intersect[0].point);\r\n\t\t\t\tfor(let i=0; i 0) \r\n\t\t{\r\n\t\t\tlet found = false;\r\n\t\t\tfor(let i=0; i {\r\n\t\t\t\tfor (const entry of entries) {\r\n\r\n\t\t\t\t\t//const contentBoxSize = entry.contentBoxSize[0];\r\n\t\t\t\t\tconsole.log(entry.contentRect.width,entry.contentRect.height);\r\n\t\t\t\t\tthis.viewportCamera.aspect = entry.contentRect.width / entry.contentRect.height\r\n\t\t\t\t\tthis.viewportCamera.updateProjectionMatrix()\r\n\t\t\t\t\t// // Update renderer\r\n\t\t\t\t\tthis.renderer.setSize(entry.contentRect.width, entry.contentRect.height)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconsole.log(\"Oserve \"+document.getElementById(\"engine\"));\r\n\t\t\tresizeObserver.observe(document.getElementById(\"engine\"));\r\n\t\t\t\r\n\t\t}\r\n\t\tthis.audio = document.querySelector('audio#audio2');\r\n\t\t\r\n\t\t//this.gui.domElement.style.cssText = 'position:absolute;top:0px;left:50%;margin-left: -100px;';\r\n\t}\r\n\r\n\tonWindowResize() \r\n\t{\r\n\t\tif(this.sizes==undefined) \r\n\t\t{\r\n\t\t\tconsole.log(\"Fail to resize\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t//console.log(\"onWindowResize \"+window.innerWidth+\" \"+window.innerHeight);\r\n\t\t//console.log(\"screen \"+screen.width+\" \"+screen.height);\r\n\t\tif(utils.isFullscreen())// Update sizes\r\n\t\t{\r\n\t\t\t//console.log(\"is fullscreen\");\r\n\t\t\tthis.sizes.width = screen.width;\r\n\t\t\t\r\n\t\t\tthis.sizes.height = screen.height;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.sizes.width = window.innerWidth\r\n\t\t\tthis.sizes.height = window.innerHeight\r\n\t\t}\r\n\t\tconsole.log(\"Resize\",this.sizes.width, this.sizes.height, window.innerWidth,window.innerHeight);\r\n\t\t// Update camera\r\n\t\tthis.viewportCamera.aspect = window.innerWidth/window.innerHeight\r\n\t\tthis.viewportCamera.updateProjectionMatrix()\r\n\t\t// // Update renderer\r\n\t\tthis.renderer.setSize(window.innerWidth,window.innerHeight)\r\n\t\t//this.update();\r\n\t\t// //this.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2))\r\n\t\t// this.renderer.setPixelRatio(1)\r\n\t\t//this.renderer.domElement.style.cssText = 'position:absolute;bottom:0px;left:0px;';\r\n\t\t//this.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 1))\r\n\t\t\r\n\t}\r\n\r\n\tonFullScreenChange() \r\n\t{\r\n\t\t//window.removeEventListener( \"resize\", this.res_func, false );\r\n\r\n\t\t// console.log(\"onFullScreenChange \"+window.innerWidth+\" \"+window.innerHeight);\r\n\t\t// // Update sizes\r\n\t\t// this.sizes.width = window.innerWidth\r\n\t\t// this.sizes.height = window.innerHeight\r\n\t\r\n\t\t// // Update camera\r\n\t\t// this.camera.aspect = this.sizes.width / this.sizes.height\r\n\t\t// this.camera.updateProjectionMatrix()\r\n\t\r\n\t\t// // Update renderer\r\n\t\t// this.renderer.setSize(this.sizes.width, this.sizes.height)\r\n\t\t// this.renderer.setPixelRatio(1)\r\n\r\n\t\t//window.addEventListener( \"resize\", this.res_func, false );\r\n\t\t\r\n\t}\r\n\r\n\taddScript(object, script){\r\n\t\tif(this.scripts[object.uuid]===undefined)\r\n\t\t\tthis.scripts[object.uuid] = [];\r\n\t\tthis.scripts[object.uuid].push(script);\r\n\t}\r\n\tremoveScript(object, script){\r\n\t\tif ( this.scripts[ object.uuid ] === undefined ) return;\r\n\t\tvar index = this.scripts[ object.uuid ].indexOf( script );\r\n\t\tif ( index !== - 1 ) {\r\n\t\t\tthis.scripts[ object.uuid ].splice( index, 1 );\r\n\t\t}\r\n\t}\r\n\tupdate()\r\n\t{\r\n\t\t\r\n\t\tif(!this) return;\r\n\r\n\t\trequestAnimationFrame(this.update.bind(this));\r\n\r\n\t\tconst delta = this.clock.getDelta();\r\n\r\n\t\tfor(const key in this.scripts)\r\n\t\t\tfor(const script of this.scripts[key])\r\n\t\t\t\tscript(delta);\r\n\r\n\t\tthis.fps_time+=delta;\r\n\t\tthis.fps_frames++;\r\n\t\tif(this.fps_time>1)\r\n\t\t{\r\n\t\t\t//console.log(\"fps \"+Math.round(1.0/(this.fps_time/this.fps_frames)));\r\n\t\t\tengine_event.emit('fps',Math.round(1.0/(this.fps_time/this.fps_frames)));\r\n\t\t\tthis.fps_time = 0;\r\n\t\t\tthis.fps_frames=0;\r\n\t\t}\r\n\t\tif(this.screen!=undefined)\r\n\t\t{\r\n\t\t\tthis.time+=delta*this.slide_speed*Math.max(1,this.slide_speed);\r\n\t\t\tif(this.time> this.slide_delay )\r\n\t\t\t{\r\n\t\t\t\tthis.time = 0;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tthis.screen.material.map = this.slides[this.slide_id];\r\n\t\t\t\tthis.screen.material.needsUpdate = true;\r\n\t\t\t\tthis.slide_id++;\r\n\t\t\t\tif(this.slide_id>= this.slides.length)\r\n\t\t\t\t\tthis.slide_id = 0;\r\n\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif ( this.mixer ) \r\n\t\t\tthis.mixer.update(delta);\r\n\r\n\t\tif ( this.anim_mixer ) \r\n\t\t\tthis.anim_mixer.update(delta);\r\n\r\n\t\tif ( this.camera_mixer ) \r\n\t\t\tthis.camera_mixer.update(delta);\r\n\t\tif(this.controls)\r\n\t\t{\r\n\t\t\tif(this.viewportCamera === this.defaultCamera)\r\n\t\t\t{\r\n\t\t\t\tif(this.gizmo_mode==\"\")\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.controls.enabled = true;\r\n\t\t\t\t\tthis.controls.update();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.controls.enabled = false;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tthis.retargeter.update();\r\n\t\tlet chains = this.retargeter.chains;\r\n\t\tlet ikRig_solved = this.retargeter.ikRig_solved;\r\n\t\tlet ikRig_poles = this.retargeter.ikRig_poles;\r\n\r\n\t\tif ( this.current_model ) \r\n\t\t{\r\n\t\t\tif(typeof this.current_model.update === 'function')\r\n\t\t\t{\r\n\t\t\t\tthis.current_model.update( delta*3 ); \r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t// // Render\r\n\t\tthis.renderer.render(this.scene, this.viewportCamera)\t\r\n\t\r\n\t\tif(this.retargeter)\r\n\t\t{\r\n\t\t\tlet mr = this.retargeter;\r\n\r\n\t\t\tif(this.recording==true)\r\n\t\t\t{\r\n\r\n\t\t\t\tlet pos= new THREE.Vector3();\r\n\t\t\t\tmr.source_bones[0].getWorldPosition(pos);\r\n\t\t\t\tthis.recording_skeleton_position.push(pos.x,pos.y,pos.z);\r\n\t\t\t\tthis.recording_skeleton_times.push(this.rec_time);\r\n\t\t\t\tthis.recording_skeleton_morphs = this.recording_skeleton_morphs.concat(this.recording_morphs.map((x) => x));\r\n\t\t\t\tfor ( let i = 0; i < mr.target_bones.length; i++ ) \r\n\t\t\t\t{\r\n\t\t\t\t\tthis.recording_skeleton_rotations[i].push(mr.source_bones[i].quaternion.x,mr.source_bones[i].quaternion.y,mr.source_bones[i].quaternion.z,mr.source_bones[i].quaternion.w);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.rec_time+=delta;\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t\tif(this.animation)\r\n\t\t\t{\r\n\t\t\t\tif(this.client)\r\n\t\t\t\t\tif(!this.client.pc)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tthis.retargeter.ikRig.height = 0;\r\n\t\t\t\t\t\t\tlet self = this;\r\n\t\t\t\t\t\t\tthis.animation.traverse( function ( child ) \r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t//console.log(\"anim \"+child.name);\r\n\t\t\t\t\t\t\t\tmr.source_bones[child.uid].position.set(child.position.x,child.position.y,child.position.z);\r\n\t\t\t\t\t\t\t\tmr.source_bones[child.uid].quaternion.set(child.quaternion.x,child.quaternion.y,child.quaternion.z,child.quaternion.w);\r\n\t\t\t\t\t\t\t\tif(child.uid==0 && self.morphs.length>0)\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tfor(var bb = 0; bb < child.morphTargetInfluences.length; bb++)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tfor(let j=0; j0)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.skeleton.visible = false;\r\n\t\t\t\t\tthis.ikRigSkeleton.visible = true;\r\n\t\t\t\t\tthis.ikRigPoles.visible = true;\r\n\t\t\t\t\tthis.ikRigSkeletonSolved.visible = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.skeleton.visible = true;\r\n\t\t\t\t\tthis.ikRigSkeleton.visible = false;\r\n\t\t\t\t\tthis.ikRigPoles.visible = false;\r\n\t\t\t\t\tthis.ikRigSkeletonSolved.visible = false;\r\n\t\t\t\t}\r\n\t\t\t\tif(this.skeleton_geometry)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst position = this.skeleton_geometry.getAttribute( 'position' );\r\n\t\t\t\t\tfor ( let i = 1, j = 0; i < mr.source_bones.length; i ++ ) {\r\n\t\t\t\t\t\tconst bone = mr.source_bones[ i ];\r\n\t\t\t\t\t\tlet pos= new THREE.Vector3();\r\n\t\t\t\t\t\tbone.getWorldPosition(pos);\r\n\t\t\t\t\t\t// pos = mr.InverseTransformPoint(this.boneContainer.matrixWorld,pos);\r\n\t\t\t\t\t\tpos.applyMatrix4(this.boneContainer.matrixWorld.clone().invert());\r\n\t\t\t\t\t\tposition.setXYZ( j, pos.x, pos.y, pos.z );\r\n\t\t\t\t\t\tbone.parent.getWorldPosition(pos);\r\n\t\t\t\t\t\t// pos = mr.InverseTransformPoint(this.boneContainer.matrixWorld,pos);\r\n\t\t\t\t\t\tpos.applyMatrix4(this.boneContainer.matrixWorld.clone().invert());\r\n\t\t\t\t\t\tposition.setXYZ( j + 1, pos.x, pos.y, pos.z );\r\n\t\t\t\t\t\tj += 2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.skeleton_geometry.getAttribute( 'position' ).needsUpdate = true;\r\n\t\t\t\t}\r\n\t\t\t\tif(this.ikRig_chains)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst position = this.ikRig_chains.getAttribute( 'position' );\r\n\t\t\t\t\tfor ( let i = 0; i < chains.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet pos = chains[i];\r\n\t\t\t\t\t\tposition.setXYZ( i, pos.x, pos.y, pos.z );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.ikRig_chains.getAttribute( 'position' ).needsUpdate = true;\r\n\t\t\t\t}\r\n\t\t\t\tif(this.ikRig_solved)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst position = this.ikRig_solved.getAttribute( 'position' );\r\n\t\t\t\t\tfor ( let i = 0; i < ikRig_solved.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet pos = ikRig_solved[i];\r\n\t\t\t\t\t\tposition.setXYZ( i, pos.x, pos.y, pos.z );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.ikRig_solved.getAttribute( 'position' ).needsUpdate = true;\r\n\t\t\t\t}\r\n\t\t\t\tif(this.ikRig_poles)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst position = this.ikRig_poles.getAttribute( 'position' );\r\n\t\t\t\t\tfor ( let i = 0; i < ikRig_poles.length; i ++ ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet pos = ikRig_poles[i];\r\n\t\t\t\t\t\tposition.setXYZ( i, pos.x, pos.y, pos.z );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.ikRig_poles.getAttribute( 'position' ).needsUpdate = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\t}\r\n\r\n\tToggleStats(show)\r\n\t{\r\n\t\tif(this.stats)\r\n\t\t{\r\n\t\t\tconsole.log(\"stats hidden: \"+show);\r\n\t\t\tthis.stats.domElement.hidden=!show;\r\n\t\t}\r\n\t}\r\n\r\n\tasync load3DEnvironment(name, remove)\r\n\t{\r\n\t\t\r\n\t\tif(remove)\r\n\t\t{\r\n\t\t\tfor(let i=0; i new VRMLoaderPlugin(parser) );\r\n\r\n\t\tvrm_loader.crossOrigin = 'anonymous';\r\n\t\t//const local_url = await aws_helper.getS3File(url,'force-cache');\r\n\t\tlet local_url = await aws_helper.getS3File(url, 'force-cache', true);\r\n\t\tvar gltf = await vrm_loader.loadAsync(local_url[0]);\r\n\t\t// let bones = [];\r\n\t\tlet morphs = [];\r\n\r\n\t\tgltf.scene.scale.set(1,1,1);\r\n\t\t//VRMUtils.removeUnnecessaryVertices( gltf.scene );\r\n\t\t//VRMUtils.removeUnnecessaryJoints( gltf.scene );\r\n\t\tconst vrm = gltf.userData.vrm;\r\n\t\t//VRMUtils.rotateVRM0( vrm );\r\n\t\tif (vrm.meta?.metaVersion === '0') {\r\n\t\t\t// vrm.humanoid.scene.rotation.y = Math.PI;\r\n\t\t\tvrm.humanoid.getNormalizedBoneNode(\"hips\").rotation.y = Math.PI;\r\n\t\t}\r\n\r\n\t\t// if ( this.currentVrm ) {\r\n\r\n\t\t// \tthis.scene.remove( this.currentVrm.scene );\r\n\t\t// \tthis.currentVrm.dispose();\r\n\r\n\t\t// }\r\n\t\tif(this.current_model)\r\n\t\t{\r\n\t\t\tthis.scene.remove( this.current_model );\r\n\t\t\tthis.scene.remove( this.current_model.scene );\r\n\t\t\tthis.current_model = null;\r\n\t\t\tthis.current_character_name=name;\r\n\t\t\t//this.scene.remove( this.hemiLight );\r\n\t\t}\r\n\t\tthis.current_character_name=name;\r\n\t\tthis.current_model = vrm;\r\n\t\tthis.current_model.etag = local_url[1];\r\n\t\tthis.scene.add( vrm.scene );\r\n\t\t\r\n\t\t// VRMSchema;\r\n\t\t// vrm.humanoid.getBoneNode( VRMSchema.HumanoidBoneName.Hips).rotation.y = Math.PI;\r\n\t\tif(vrm.lookAt)\r\n\t\t\tvrm.lookAt.target = this.viewportCamera;\r\n\t\t\r\n\t\tgltf.scene.traverse( function ( child ) \r\n\t\t{\r\n\t\t\tif ( child.isMesh ) \r\n\t\t\t{\r\n\t\t\t\tchild.receiveShadow = false;//true;\r\n\t\t\t\tchild.frustumCulled =false;\r\n\t\t\t\tlet m = child.material;\r\n\t\t\t\tm.castShadow = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfor(let i=0; i< 17+52; i++)\r\n\t\t{\r\n\t\t\tlet blendshape = []\r\n\t\t\tlet m = \r\n\t\t\t{\r\n\t\t\t\tname: \"\",\r\n\t\t\t\tfull_name: \"\",\r\n\t\t\t\tmorph: undefined,\r\n\t\t\t\tid: -1\r\n\t\t\t}\r\n\t\t\tblendshape.push(m);\r\n\t\t\tmorphs.push(blendshape);\r\n\t\t}\r\n\r\n\t\tthis.morphs = morphs;\r\n\t\tengine_event.emit('new_character');\r\n\t\tthis.retargeter.scanBones(Retargeter.VRMSkeleton.getBones(vrm));\r\n\t\tthis.dirLight.castShadow = true;\r\n\t\tthis.ground.receiveShadow = true;\t\r\n\r\n\t\tthis.current_model.scene.position.copy(this.gizmos[0].position);\r\n\t\tthis.current_model.scene.rotation.y =this.gizmos[0].rotation.z;\r\n\r\n\t}\r\n\r\n\tasync loadAnimation(name)\r\n\t{\r\n\t\tconst manager = new LoadingManager();\r\n\t\tlet loader = new GLTFLoader(manager);\r\n\t\tlet local_url = await aws_helper.getS3File(name);\r\n\t\tlet object = await loader.loadAsync( local_url );\r\n\t\tlet model = object.scene;\r\n\t\tmodel.scale.set(100,100,100)\r\n\t\t//this.scene.add( model );\r\n\t\t\r\n\t\t//model.face = {morphTargetInfluences:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]};\r\n\t\tthis.animation = model.children[0].children[0];\r\n\t\t\r\n\t\tthis.animation.traverse( function ( child ) \r\n\t\t{\r\n\t\t\tif(child.name==\"Hip\")\r\n\t\t\t{\r\n\t\t\t\tchild.uid = 0;\r\n\t\t\t\tchild.morphTargetInfluences = new Array(69).fill(0);\r\n\t\t\t}\r\n\t\t\telse if(child.name==\"RHip\")\r\n\t\t\t\tchild.uid = 1;\r\n\t\t\telse if(child.name==\"RKnee\")\r\n\t\t\t\tchild.uid = 2;\r\n\t\t\telse if(child.name==\"RAnkle\")\r\n\t\t\t\tchild.uid = 3;\r\n\t\t\telse if(child.name==\"LHip\")\r\n\t\t\t\tchild.uid = 4;\r\n\t\t\telse if(child.name==\"LKnee\")\r\n\t\t\t\tchild.uid = 5;\r\n\t\t\telse if(child.name==\"LAnkle\")\r\n\t\t\t\tchild.uid = 6;\r\n\t\t\telse if(child.name==\"Spine\")\r\n\t\t\t\tchild.uid = 7;\r\n\t\t\telse if(child.name==\"Spine1\")\r\n\t\t\t\tchild.uid = 8;\r\n\t\t\telse if(child.name==\"Spine2\")\r\n\t\t\t\tchild.uid = 9;\r\n\t\t\telse if(child.name==\"Neck\")\r\n\t\t\t\tchild.uid = 10;\r\n\t\t\telse if(child.name==\"Head\")\r\n\t\t\t\tchild.uid = 11;\r\n\t\t\telse if(child.name==\"LShoulder\")\r\n\t\t\t\tchild.uid = 12;\r\n\t\t\telse if(child.name==\"LArm\")\r\n\t\t\t\tchild.uid = 13;\r\n\t\t\telse if(child.name==\"LForeArm\")\r\n\t\t\t\tchild.uid = 14;\r\n\t\t\telse if(child.name==\"LWrist\")\r\n\t\t\t\tchild.uid = 15;\r\n\t\t\telse if(child.name==\"RShoulder\")\r\n\t\t\t\tchild.uid = 16;\r\n\t\t\telse if(child.name==\"RArm\")\r\n\t\t\t\tchild.uid = 17;\r\n\t\t\telse if(child.name==\"RForeArm\")\r\n\t\t\t\tchild.uid = 18;\r\n\t\t\telse if(child.name==\"RWrist\")\r\n\t\t\t\tchild.uid = 19;\r\n\t\t\telse if(child.name==\"RToe\")\r\n\t\t\t\tchild.uid = 20;\r\n\t\t\telse if(child.name==\"LToe\")\r\n\t\t\t\tchild.uid = 21;\r\n\t\t\telse if(child.name==\"RightThumb1\")\r\n\t\t\t\tchild.uid = 22;\r\n\t\t\telse if(child.name==\"RightThumb2\")\r\n\t\t\t\tchild.uid = 23;\r\n\t\t\t\telse if(child.name==\"RightThumb3\")\r\n\t\t\t\tchild.uid = 24; \r\n\t\t\telse if(child.name==\"RightThumb4\")\r\n\t\t\t\tchild.uid = 25; \r\n\t\t\telse if(child.name==\"RightIndex1\")\r\n\t\t\t\tchild.uid = 26; \r\n\t\t\telse if(child.name==\"RightIndex2\")\r\n\t\t\t\tchild.uid = 27; \r\n\t\t\telse if(child.name==\"RightIndex3\")\r\n\t\t\t\tchild.uid = 28; \r\n\t\t\telse if(child.name==\"RightIndex4\")\r\n\t\t\t\tchild.uid = 29; \r\n\t\t\telse if(child.name==\"RightMiddle1\")\r\n\t\t\t\tchild.uid = 30; \r\n\t\t\telse if(child.name==\"RightMiddle2\")\r\n\t\t\t\tchild.uid = 31; \r\n\t\t\telse if(child.name==\"RightMiddle3\")\r\n\t\t\t\tchild.uid = 32; \r\n\t\t\telse if(child.name==\"RightMiddle4\")\r\n\t\t\t\tchild.uid = 33; \r\n\t\t\telse if(child.name==\"RightRing1\")\r\n\t\t\t\tchild.uid = 34; \r\n\t\t\telse if(child.name==\"RightRing2\")\r\n\t\t\t\tchild.uid = 35; \r\n\t\t\telse if(child.name==\"RightRing3\")\r\n\t\t\t\tchild.uid = 36; \r\n\t\t\telse if(child.name==\"RightRing4\")\r\n\t\t\t\tchild.uid = 37; \r\n\t\t\telse if(child.name==\"RightPinky1\")\r\n\t\t\t\tchild.uid = 38; \r\n\t\t\telse if(child.name==\"RightPinky2\")\r\n\t\t\t\tchild.uid = 39; \r\n\t\t\telse if(child.name==\"RightPinky3\")\r\n\t\t\t\tchild.uid = 40; \r\n\t\t\telse if(child.name==\"RightPinky4\")\r\n\t\t\t\tchild.uid = 41; \r\n\t\t\telse if(child.name==\"LeftThumb1\")\r\n\t\t\t\tchild.uid = 42; \r\n\t\t\telse if(child.name==\"LeftThumb2\")\r\n\t\t\t\tchild.uid = 43; \r\n\t\t\telse if(child.name==\"LeftThumb3\")\r\n\t\t\t\tchild.uid = 44; \r\n\t\t\telse if(child.name==\"LeftThumb4\")\r\n\t\t\t\tchild.uid = 45; \r\n\t\t\telse if(child.name==\"LeftIndex1\")\r\n\t\t\t\tchild.uid = 46; \r\n\t\t\telse if(child.name==\"LeftIndex2\")\r\n\t\t\t\tchild.uid = 47; \r\n\t\t\telse if(child.name==\"LeftIndex3\")\r\n\t\t\t\tchild.uid = 48; \r\n\t\t\telse if(child.name==\"LeftIndex4\")\r\n\t\t\t\tchild.uid = 49; \r\n\t\t\telse if(child.name==\"LeftMiddle1\")\r\n\t\t\t\tchild.uid = 50; \r\n\t\t\telse if(child.name==\"LeftMiddle2\")\r\n\t\t\t\tchild.uid = 51;\r\n\t\t\telse if(child.name==\"LeftMiddle3\")\r\n\t\t\t\tchild.uid = 52; \r\n\t\t\telse if(child.name==\"LeftMiddle4\")\r\n\t\t\t\tchild.uid = 53; \r\n\t\t\telse if(child.name==\"LeftRing1\")\r\n\t\t\t\tchild.uid = 54; \r\n\t\t\telse if(child.name==\"LeftRing2\")\r\n\t\t\t\tchild.uid = 55; \r\n\t\t\telse if(child.name==\"LeftRing3\")\r\n\t\t\t\tchild.uid = 56; \r\n\t\t\telse if(child.name==\"LeftRing4\")\r\n\t\t\t\tchild.uid = 57; \r\n\t\t\telse if(child.name==\"LeftPinky1\")\r\n\t\t\t\tchild.uid = 58; \r\n\t\t\telse if(child.name==\"LeftPinky2\")\r\n\t\t\t\tchild.uid = 59; \r\n\t\t\telse if(child.name==\"LeftPinky3\")\r\n\t\t\t\tchild.uid = 60; \r\n\t\t\telse if(child.name==\"LeftPinky4\")\r\n\t\t\t\tchild.uid = 61; \r\n\r\n\r\n\t\t});\r\n\t\t\r\n\t\tconst animations = object.animations;\r\n\t\tthis.default_animation = animations[0];\r\n\t\tthis.mixer = new THREE.AnimationMixer(model);\r\n\t\tlet idle = this.mixer.clipAction( animations[0] )\r\n\t\tidle.play();\r\n\t\t\r\n\t}\r\n\r\n\tasync loadCameraMotion(name)\r\n\t{\r\n\t\tconst manager = new LoadingManager();\r\n\t\tlet loader = new GLTFLoader(manager);\r\n\t\tlet local_url = await aws_helper.getS3File(name);\r\n\t\tlet object = await loader.loadAsync( local_url );\r\n\t\tlet model = object.scene;\r\n\t\tthis.camera_motion_object = model.children[0].children[0];\r\n\t\tthis.camera_motions = object.animations;\r\n\t\tthis.camera_mixer = new THREE.AnimationMixer(model);\r\n\t\t\r\n\r\n\t\t//let idle = this.camera_mixer.clipAction( this.camera_motions[0] )\r\n\t\t//idle.play();\r\n\t\t//engine_event.emit('camera_motions',this.camera_motions);\r\n\t\tstore.state.camera_motions = [];\r\n store.state.camera_motions.push({\"name\":\"free\"});\r\n store.state.camera_motions.push({\"name\":\"follow\"});\r\n for(let m in this.camera_motions)\r\n store.state.camera_motions.push({\"name\":this.camera_motions[m].name})\r\n\t}\r\n\r\n\tonCameraMotion(index)\r\n\t{\r\n\t\tindex;\r\n\t\t// this.camera_index = index;\r\n\t\t// this.camera_mixer.stopAllAction();\r\n\t\t// if(index==0)\r\n\t\t// {\r\n\t\t// \tthis.controls.enableRotate = true;\r\n\t\t// \tthis.controls.enablePan = true;\r\n\t\t// \tthis.controls.enableZoom = true;\r\n\t\t// \tthis.camera.near = 0.001;\r\n\t\t// \tthis.camera.setFocalLength(30);\r\n\t\t// \tthis.camera.position.set( 0, 1, 4 );\r\n\t\t// \tthis.camera.lookAt( 0, 0, 1 );\r\n\t\t// \tthis.controls.target.set( 0, 1, 0 );\r\n\t\t// \tthis.controls.update();\r\n\t\t// }\r\n\t\t\r\n\t\t// else{\r\n\t\t// \tthis.controls.enableRotate = false;\r\n\t\t// \tthis.controls.enablePan = false;\r\n\t\t// \tthis.controls.enableZoom = false;\r\n\t\t// \tthis.camera.setFocalLength(80);\r\n\t\t// }\r\n\t\t// if(index == 1)\r\n\t\t// {\r\n\t\t// \tthis.camera.position.set( 0, 1, 4 );\r\n\t\t// \tthis.camera.lookAt( 0, 0, 1 );\r\n\t\t// \tthis.controls.target.set( 0, 1, 0 );\r\n\t\t// \tthis.controls.update();\r\n\t\t// \tconsole.log(\"follow camera\")\r\n\t\t// }\r\n\t\t// if(index>=2)\r\n\t\t// {\r\n\t\t// \tlet idle = this.camera_mixer.clipAction( this.camera_motions[index-2] )\r\n\t\t// \tidle.play();\r\n\t\t// }\r\n\t}\r\n\r\n\tasync loadEnvironment(urls, name = \"\")\r\n\t{\r\n\t\tthis.current_environment_urls = urls;\r\n\t\tlet loader = new THREE.CubeTextureLoader();\r\n\t\tif(urls[0]==\"\")\r\n\t\t{\r\n\t\t\tthis.disableBackground();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet local_urls = [\r\n\t\t\tawait aws_helper.getS3File(urls[0]),\r\n\t\t\tawait aws_helper.getS3File(urls[1]),\r\n\t\t\tawait aws_helper.getS3File(urls[2]),\r\n\t\t\tawait aws_helper.getS3File(urls[3]),\r\n\t\t\tawait aws_helper.getS3File(urls[4]),\r\n\t\t\tawait aws_helper.getS3File(urls[5])]\r\n\t\tlet cubeTexture = await loader.loadAsync(local_urls);\r\n\t\r\n\t\tcubeTexture.encoding = THREE.sRGBEncoding;\r\n\t\t\r\n\t\tthis.scene.background = cubeTexture;\r\n\t\tthis.current_environment = cubeTexture;\r\n\t\tif(name===\"\")\r\n\t\t\tname = urls[0];\r\n\t\tthis.current_environment_name = name;\r\n\t\r\n\t\tlet API = this.API;\r\n\t\tif(this.current_model!=undefined)\r\n\t\tif(typeof this.current_model.traverse === 'function')\r\n\t\t{\r\n\t\t\tthis.current_model.traverse( function ( child ) \r\n\t\t\t{\r\n\t\t\t\tif ( child.isMesh ) \r\n\t\t\t\t{\r\n\t\t\t\t\tif(name!=\"GreenScreen\" && name!=\"BlueScreen\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tchild.material.envMap = cubeTexture;\r\n\t\t\t\t\t\tchild.material.envMapIntensity = API.envMapIntensity;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t//this.em.emit('new_environment');\r\n\t\tengine_event.emit('new_environment');\r\n\t\t\r\n\t}\r\n\trotateCharacter(value)\r\n\t{\r\n\t\t//if(this.current_model)\r\n\t\t//\tthis.current_model.rotation.y = value*3.6*0.0174533;\r\n\t\t//if(this.currentVrm)\r\n\t\t\t//this.scene.rotation.y= value*1.8*0.0174533;\r\n\t\t\t//this.currentVrm.humanoid.y = value*3.6*0.0174533;\r\n\t\t\tlet q = new THREE.Quaternion;\r\n\t\t\tq.setFromEuler(new THREE.Euler(0, (360*(value/100))*0.0174533, 0));\r\n\t\t\tthis.scene.quaternion.set(q.x,q.y,q.z,q.w);\r\n\t\t\t\r\n\t}\r\n\tfindCharacterURL(name, charater_list)\r\n\t{\r\n\t\tfor(let i=0; i< charater_list.length; i++)\r\n\t\t{\r\n\t\t\tif(charater_list[i][3] == name)\r\n\t\t\t\treturn [charater_list[i][0],charater_list[i][2]];\r\n\t\t}\r\n\t\treturn [\"\",\"\"];\r\n\t}\r\n\tfindEnvironmentURL(name, environment_list)\r\n\t{\r\n\t\tfor(let i=0; i< environment_list.length; i++)\r\n\t\t{\r\n\t\t\tif(environment_list[i][6] == name)\r\n\t\t\t\treturn environment_list[i].slice(0,6);\r\n\t\t}\r\n\t\treturn [\"\",\"\",\"\",\"\",\"\",\"\"];\r\n\t}\r\n\tsaveProject()\r\n\t{\r\n\t\tlet output = {\r\n\t\t\tmetadata: {},\r\n\t\t\tcamera: this.viewportCamera.toJSON(),\r\n\t\t\tcontrols: this.controls.target,\r\n\t\t\tcharacter_url: {\r\n\t\t\t\turl: this.current_model_url,\r\n\t\t\t\tmatrix: this.current_model.matrix? this.current_model.matrix.elements : this.current_model.scene.matrix.elements,\r\n\t\t\t},\r\n\t\t\tdefinition: this.current_json_url,\r\n\t\t\tenvironment: this.current_environment_urls,\r\n\t\t\tenviroments_3d: [],\r\n\t\t\tslides:[],\r\n\t\t\tcameras:[],\r\n\t\t\tground: this.ground.parent === this.scene,\r\n\t\t\tanimated_object: this.current_animated_object_url,\r\n\t\t\trecordings:[],\r\n\r\n\t\t};\r\n\t\t\r\n\t\t\r\n\t\tfor(let i=0; i1)\r\n {\r\n ext = ext[ext.length-1];\r\n }\r\n\t\t\tif(ext==\"glb\" && json.definition)\r\n\t\t\t{\r\n\t\t\t\tif(json.character_url.url==\"public/RedPillBot.glb\")\r\n\t\t\t\t{\r\n\t\t\t\t\tjson.character_url.url = \"public/models/RedPillBotV3.glb\";\r\n\t\t\t\t\tjson.definition = \"public/configs/RedPillBotV3.json\";\r\n\t\t\t\t}\r\n\t\t\t\tawait this.loadCharacter(json.character_url.url,json.definition);\r\n\t\t\t}\r\n\t\t\telse if(ext==\"vrm\")\r\n\t\t\t\tawait this.loadVRM(json.character_url.url,json.character_url.url);\r\n\t\t\tif(json.character_url.matrix)\r\n\t\t\t{\r\n\t\t\t\tlet model = this.current_model;\r\n\t\t\t\tif(!model.matrix)\r\n\t\t\t\t\tmodel = this.current_model.scene;\r\n\t\t\t\t\tmodel.matrix.fromArray(json.character_url.matrix);\r\n\t\t\t\tif ( model.matrixAutoUpdate ) model.matrix.decompose( model.position, model.quaternion, model.scale )\r\n\t\t\t\tmodel.updateMatrix();\r\n\t\t\t\tfor(let i=0; i r.blob());\r\n\t\t\t\r\n\t\t\t\t\tthis.recording_list[this.recording_list.length-1].audio = blob;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tthis.onWindowResize();\r\n\r\n\t\tthis.time = 0;\r\n\t\tthis.clock = new THREE.Clock();\r\n\t\tthis.slide_id = 0;\r\n\t\tif(this.screen!=undefined)\r\n\t\t{\r\n\t\t\tthis.screen.material.map = this.slides[this.slide_id];\r\n\t\t\tthis.screen.material.needsUpdate = true;\t\r\n\t\t}\r\n\t\t//this.initControls();\r\n\t}\r\n\t//document.querySelector('#app').__vue__.$children[1].engine.setStage(\"Stage 1\");\r\n\tsetStage(stage_name)\r\n\t{\r\n\t\tif(this.current_project)\r\n\t\t{\r\n\t\t\tfor(var c in this.loaded_characters)\r\n\t\t\t\tthis.loaded_characters[c].visible = false;\r\n\t\t\tfor(var l in this.current_project.Stages)\r\n\t\t\t{\r\n\t\t\t\tif(this.current_project.Stages[l].name == stage_name)\r\n\t\t\t\t{\r\n\t\t\t\t\t//console.log(\"character id \"+this.current_project.Stages[l].current_character);\r\n\t\t\t\t\t//console.log(this.current_project.characters[this.current_project.Stages[l].current_character] + \" \"+this.current_project.environments[this.current_project.Stages[l].current_environment]);\r\n\t\t\t\t\t//for(var char in this.loaded_characters)\r\n\t\t\t\t\t//\tconsole.log(\"loaded characters \"+char+\" \"+this.loaded_characters[char].name);\r\n\t\t\t\t\tthis.scene.background = this.loaded_environments[this.current_project.Stages[l].current_environment];\r\n\t\t\t\t\tthis.current_environment = this.loaded_environments[this.current_project.Stages[l].current_environment];\r\n\t\t\t\t\tthis.current_model = this.loaded_characters[this.current_project.Stages[l].current_character];\r\n\t\t\t\t\tthis.current_model.visible = true;\r\n\t\t\t\t\tthis.morphs = this.loaded_morphs[this.current_project.Stages[l].current_character];\r\n\t\t\t\t\tthis.bones = this.loaded_bones[this.current_project.Stages[l].current_character];\r\n\t\t\t\t\tthis.retargeter.scanBones(this.bones);\r\n\t\t\t\t\tlet API = this.API;\r\n\t\t\t\t\tlet cubeTexture = this.current_environment;\r\n\r\n\t\t\t\t\tthis.current_model.traverse( function ( child ) \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif ( child.isMesh ) \r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tchild.material.envMap =cubeTexture;\r\n\t\t\t\t\t\t\tchild.material.envMapIntensity = API.envMapIntensity;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t//this.em.emit('new_character');\r\n\t\t\t\t\tengine_event.emit('new_character');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\tdisableBackground()\r\n\t{\r\n\t\tthis.scene.background = null;\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPanel.vue?vue&type=style&index=0&id=80404676&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentPanel.vue?vue&type=style&index=0&id=15a5be1a&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"starter-page\"},[_c('div',{staticClass:\"section text-center\"},[_c('video-background',{staticStyle:{\"max-height\":\"100vh\",\"height\":\"100vh\",\"top\":\"0\"},attrs:{\"id\":\"video_bg\",\"src\":\"https://ai-cast-video-bucket.s3.ap-northeast-2.amazonaws.com/Dance.mp4\",\"poster\":\"https://ai-cast-video-bucket.s3.ap-northeast-2.amazonaws.com/rpg.png\"}},[_c('br'),_c('br'),_c('br'),_c('h1',{staticStyle:{\"color\":\"white\"}},[_vm._v(\"Red Pill Go\")]),_c('h3',{staticStyle:{\"color\":\"white\"}},[_vm._v(\"Live Avatars In Your Pocket\")]),_c('div',{staticStyle:{\"width\":\"100%\",\"vertical-align\":\"middle\",\"bottom\":\"0\",\"position\":\"absolute\",\"height\":\"50%\"}},[_c('soft-button',{staticClass:\"center\",attrs:{\"color\":\"gored\",\"variant\":\"gradient\"},on:{\"click\":_vm.OnLaunch}},[_vm._v(\" Launch Red Pill Go \")])],1),_c('div',{staticClass:\"flex social-btns\"},[_c('a',{staticClass:\"app-btn blu flex vert\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.OnDesktop}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-brands fa-windows\"}}),_c('p',[_vm._v(\"Application \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"big-txt\"},[_vm._v(\"Desktop\")])])],1),_c('a',{staticClass:\"app-btn blu flex vert\",attrs:{\"href\":\"https://play.google.com/store/apps/details?id=com.next.redpillgo\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"fa-brands fa-google-play\"}}),_c('p',[_vm._v(\"Get it on \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"big-txt\"},[_vm._v(\"Google Play\")])])],1)])]),_c('iframe',{staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"my_iframe\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home2.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home2.vue?vue&type=template&id=74b86ca4&\"\nimport script from \"./Home2.vue?vue&type=script&lang=js&\"\nexport * from \"./Home2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home2.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport VueRouter from 'vue-router';\nimport Editor from '../views/Home2.vue';\nimport { API } from 'aws-amplify';\nimport { Auth } from 'aws-amplify';\nimport store from '../store'\nimport { CognitoUser, CognitoRefreshToken } from 'amazon-cognito-identity-js';\n\nconst routes = [\n {\n path: \"/\",\n name: \"/\",\n redirect: \"/home\",\n },\n {\n path: \"/home\",\n name: \"home\",\n beforeEnter: checkLogged,\n component: Editor\n // component: () => import(/* webpackChunkName: \"home\" */ '../views/Login.vue'),\n },\n {\n path: \"/viewer/:project\",\n name: \"viewer\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"viewer\" */ '../views/Viewer.vue'),\n props: true\n },\n {\n path: \"/payment\",\n name: \"payment\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"viewer\" */ '../views/Payment.vue'),\n },\n {\n path: \"/profile\",\n name: \"profile\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"profile\" */ '../views/Profile.vue'),\n },\n {\n path: \"/assets\",\n name: \"assets\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"profile\" */ '../views/Assets.vue'),\n },\n {\n path: \"/login\",\n name: \"login\",\n beforeEnter: skipLogged,\n component: () => import(/* webpackChunkName: \"login\" */ '../views/SignIn.vue'),\n },\n {\n path: \"/projects\",\n name: \"projects\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"projects\" */ '../views/Projects.vue'),\n },\n {\n path: '/admin',\n name: 'Admin',\n beforeEnter: checkAdminRights,\n component: () =>\n import(/* webpackChunkName: \"market\" */ '../views/Admin.vue'),\n },\n {\n path: '/license',\n name: 'License',\n beforeEnter: checkAdminRights,\n component: () =>\n import(/* webpackChunkName: \"market\" */ '../views/License.vue'),\n },\n {\n path: '/licenses',\n name: 'Licenses',\n beforeEnter: checkAdminRights,\n component: () =>\n import(/* webpackChunkName: \"market\" */ '../views/Licenses.vue'),\n },\n {\n path: \"/docs\",\n name: \"docs\",\n beforeEnter(){window.open(\"https://docs.rplab.online\");}\n },\n {\n path: \"/pricing\",\n name: \"pricing\",\n component: () =>\n import(/* webpackChunkName: \"market\" */ '../views/Pricing.vue'),\n },\n {\n path: \"/addon/:feature_id\",\n name: \"addon\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"viewer\" */ '../views/AddOn.vue'),\n props: true\n },\n {\n path: \"/subscriptions\",\n name: \"subscriptions\",\n beforeEnter: guardLogged,\n component: () => import(/* webpackChunkName: \"viewer\" */ '../views/Subscriptions.vue')\n },\n \n]\nasync function checkLogged(to, from, next) {\n \n\n try \n { \n var user = await Auth.currentAuthenticatedUser();\n console.log('Logged in '+user.attributes.email) \n //mapMutations([\"setLoggedIn\"])(true);\n store.commit('setLoggedIn',true)\n next();\n } \n catch(e) \n { \n store.commit('setLoggedIn',false)\n next(); \n } \n \n}\n\nasync function guardLogged(to, from, next) {\n \n try \n { \n const user = await Auth.currentAuthenticatedUser();\n console.log('Logged in '+user.attributes.email)\n store.state.email = user.attributes.email;\n //mapMutations([\"setLoggedIn\"])(true);\n store.commit('setLoggedIn',true)\n next();\n } \n catch(e) \n { \n console.log(e);\n store.commit('setLoggedIn',false)\n store.state.email = undefined;\n next(\"/login\"); \n } \n \n}\n\nasync function skipLogged(to, from, next) {\n\n \n try \n { \n var user = await Auth.currentAuthenticatedUser();\n console.log('Logged in '+user.attributes.email) \n //mapMutations([\"setLoggedIn\"])(true);\n store.commit('setLoggedIn',true)\n next('/home');\n } \n catch(e) \n { \n store.commit('setLoggedIn',false)\n next(); \n } \n \n}\n\nasync function checkAdminRights(to, from, next) {\n \n const profile = await API.get('rpgUserProfile','/profile');\n let userIsAdmin = profile.isAdmin;\n if(userIsAdmin) \n {\n store.state.isAdmin=true;\n next();\n }\n else\n {\n store.state.isAdmin=false;\n next(\"/\");\n }\n}\n\n\n\n// Function to refresh tokens using refresh token\nasync function refreshTokensWithCognitoSdk(refreshTokenString, email) {\n Auth.userPool.clientId = '1as8ft89r4ast9gj3ef6knlthv';\n // const poolData = {\n // UserPoolId: 'ap-northeast-2_pCCmMMx9s', // Your user pool id here\n // ClientId: '1as8ft89r4ast9gj3ef6knlthv', // Your client id here\n // Region: 'ap-northeast-2'\n // };\n // const userPool = new CognitoUserPool(poolData);\n const userPool = Auth.userPool;\n const userData = {\n Username: email, // The username of the user\n Pool: userPool\n };\n\n const cognitoUser = new CognitoUser(userData);\n const refreshToken = new CognitoRefreshToken({ RefreshToken: refreshTokenString });\n try {\n const session = await new Promise((resolve, reject) => {\n cognitoUser.refreshSession(refreshToken, (err, session) => {\n if (err) {\n reject(err);\n } else {\n resolve(session);\n }\n });\n });\n\n // Access the new tokens from the session object\n const idToken = session.getIdToken().getJwtToken();\n const accessToken = session.getAccessToken().getJwtToken();\n const newRefreshToken = session.getRefreshToken().getToken();\n\n console.log('Session refreshed successfully!');\n console.log('ID Token:', idToken);\n console.log('Access Token:', accessToken);\n console.log('New Refresh Token:', newRefreshToken);\n \n // Auth.currentCredentials = async()=>session;\n // Auth.currentUserPoolUser = async()=>cognitoUser;\n // console.log(await Auth.currentSession());\n // Return the session or any relevant data\n return session;\n } catch (error) {\n console.error('Error refreshing session:', error);\n // Handle the error appropriately\n throw error;\n }\n \n \n}\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n linkActiveClass: \"active\",\n linkExactActiveClass: \"exact-active\",\n});\n \n\n// Define the function you want to run before rendering App\nasync function preRenderFunction(to, from, next) {\n\n const token = localStorage.getItem('authToken');\n const email = localStorage.getItem('authEmail');\n\n if(token)\n await refreshTokensWithCognitoSdk(token,email);\n next() // Continue to the route\n}\n\n// Add the beforeEach navigation guard\nrouter.beforeEach(preRenderFunction)\n\n export default router;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"custom-select\",attrs:{\"tabindex\":_vm.tabindex},on:{\"blur\":function($event){_vm.open = false}}},[_c('div',{staticClass:\"selected\",class:{ open: _vm.open },on:{\"click\":function($event){_vm.open = !_vm.open}}},[(_vm.attribute!=null && _vm.selected[_vm.attribute])?_c('div',[_vm._v(\" \"+_vm._s(_vm.selected[_vm.attribute])+\" \")]):_c('div',[_vm._v(_vm._s(_vm.selected))])]),_c('div',{staticClass:\"items\",class:{ selectHide: !_vm.open }},_vm._l((_vm.options),function(option,i){return _c('div',{key:i,on:{\"click\":function($event){_vm.selected = option;\n _vm.open = false;\n _vm.$emit('input', option);}}},[(_vm.attribute!=null)?_c('div',[_vm._v(_vm._s(option[_vm.attribute]))]):_c('div',[_vm._v(_vm._s(option))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n \r\n \r\n \r\n \r\n ","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomSelect.vue?vue&type=template&id=6606f536&scoped=true&\"\nimport script from \"./CustomSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomSelect.vue?vue&type=style&index=0&id=6606f536&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6606f536\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn mb-0\",class:_vm.getClasses(_vm.variant, _vm.color, _vm.size, _vm.fullWidth, _vm.active),on:{\"click\":function($event){return _vm.clicked($event)}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SoftButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SoftButton.vue?vue&type=template&id=3ce040eb&\"\nimport script from \"./SoftButton.vue?vue&type=script&lang=js&\"\nexport * from \"./SoftButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Configurator.vue?vue&type=style&index=0&id=1b5f9ffc&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CharacterPanel.vue?vue&type=style&index=0&id=36af11f6&scoped=true&lang=css&\"","import { render, staticRenderFns } from \"./CustomerSupport.vue?vue&type=template&id=50563fa7&\"\nimport script from \"./CustomerSupport.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomerSupport.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomSelect.vue?vue&type=style&index=0&id=6606f536&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=61e3b1cc&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraCard.vue?vue&type=style&index=0&id=6a206435&scoped=true&lang=css&\""],"sourceRoot":""}