{"id":45,"date":"2023-02-08T13:12:28","date_gmt":"2023-02-08T10:12:28","guid":{"rendered":"http:\/\/bantv.ru\/?page_id=45"},"modified":"2026-10-20T22:21:41","modified_gmt":"2026-10-20T19:21:41","slug":"%d0%b3%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f","status":"publish","type":"page","link":"https:\/\/bantv.ru\/","title":{"rendered":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"45\" class=\"elementor elementor-45\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-03534d6 elementor-section-full_width elementor-section-content-top elementor-section-height-default elementor-section-height-default\" data-id=\"03534d6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-60d1358\" data-id=\"60d1358\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c576d06 elementor-widget elementor-widget-html\" data-id=\"c576d06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style id=\"bantv-home-v3-style\">\n\/* BanTV Production \u00b7 Home 3.0. All product styles are isolated. *\/\nbody.page-id-45 .entry-header{display:none!important}body.page-id-45 .site-content,body.page-id-45 .site-main,body.page-id-45 .entry-content{padding-top:0!important;margin-top:0!important}body.page-id-45 .elementor-section-wrap,body.page-id-45 .elementor-widget-wrap,body.page-id-45 .elementor-widget-html{padding:0!important}body.page-id-45 .elementor-section .elementor-container{max-width:none}body.page-id-45 .entry-content{max-width:none;width:100%}\n#bantv-home-v3{--lime:#b7f34a;--bg:#080a09;--paper:#f1f5ee;--muted:#a7b1a9;--line:#ffffff21;--curve:cubic-bezier(.22,.7,.2,1);position:relative;isolation:isolate;background:var(--bg);color:var(--paper);font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Arial,sans-serif;font-size:17px;line-height:1.65;overflow:clip;text-align:left;color-scheme:dark}\n#bantv-home-v3 *,#bantv-home-v3 *:before,#bantv-home-v3 *:after{box-sizing:border-box}#bantv-home-v3 :is(h1,h2,h3,p,figure){margin:0}#bantv-home-v3 :is(h1,h2,h3){color:inherit;font-family:inherit;font-weight:650;letter-spacing:-.055em;line-height:1.04;text-transform:none}#bantv-home-v3 :is(a,button){-webkit-tap-highlight-color:transparent}#bantv-home-v3 a{color:inherit;text-decoration:none}#bantv-home-v3 button{font:inherit;letter-spacing:inherit;text-transform:none;cursor:pointer;border-radius:0;box-shadow:none}#bantv-home-v3 button:disabled{cursor:default}#bantv-home-v3 a:focus-visible,#bantv-home-v3 button:focus-visible,#bantv-home-v3 summary:focus-visible{outline:3px solid var(--lime);outline-offset:6px}#bantv-home-v3 :is(img,svg){display:block;max-width:100%}#bantv-home-v3 [hidden]{display:none!important}#bantv-home-v3 .bh-wrap{width:min(1240px,calc(100% - 88px));margin-inline:auto}#bantv-home-v3 .bh-kicker{font-size:12px;line-height:1.5;font-weight:650;letter-spacing:.15em;text-transform:uppercase;color:var(--lime);display:flex;align-items:center;gap:12px}#bantv-home-v3 .bh-kicker:before{content:\"\";width:24px;height:2px;background:currentColor}#bantv-home-v3 .bh-muted{color:var(--muted)}#bantv-home-v3 .bh-accent{color:var(--lime)}#bantv-home-v3 .bh-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:30px}#bantv-home-v3 .bh-btn{display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:52px;padding:13px 22px;border:1px solid var(--line);border-radius:100px;background:#ffffff08;color:var(--paper);font-size:14px;line-height:1.4;font-weight:650;transition:background .25s,border-color .25s,box-shadow .3s}#bantv-home-v3 .bh-btn:hover{background:#ffffff12;border-color:#ffffff66}#bantv-home-v3 .bh-btn-primary{background:var(--lime);color:#101808;border-color:var(--lime)}#bantv-home-v3 .bh-btn-primary:hover{background:#cafb79;box-shadow:0 6px 35px #b7f34a20}#bantv-home-v3 .bh-arrow{font-size:20px;line-height:1}#bantv-home-v3 .bh-topline{display:flex;align-items:center;justify-content:space-between;padding-top:30px;gap:20px;font-size:12px;letter-spacing:.1em;text-transform:uppercase}#bantv-home-v3 .bh-motion{display:flex;align-items:center;gap:9px;padding:8px 12px;color:#bdc6be;background:transparent;border:1px solid var(--line);border-radius:30px;font-size:11px;letter-spacing:.02em;min-height:40px}#bantv-home-v3 .bh-motion i{width:7px;height:7px;border-radius:50%;background:var(--lime)}\n#bantv-home-v3 .bh-hero{position:relative;padding:70px 0 56px}#bantv-home-v3 .bh-hero:before{content:\"\";position:absolute;inset:-100px 0 auto 30%;height:800px;background:radial-gradient(ellipse at center,#7c9f3010,transparent 65%);pointer-events:none}#bantv-home-v3 .bh-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:55px}#bantv-home-v3 .bh-hero h1{font-size:clamp(64px,6.9vw,104px);margin:24px 0 25px;max-width:700px}#bantv-home-v3 .bh-hero h1 span{display:block}#bantv-home-v3 .bh-hero-copy>p{max-width:470px;color:var(--muted);font-size:18px;line-height:1.7}#bantv-home-v3 .bh-hero-note{font-size:12px!important;margin-top:24px;max-width:380px!important}#bantv-home-v3 .bh-cinema{position:relative;width:100%;aspect-ratio:1\/1.08;border:1px solid #b7f34a32;border-radius:32px;overflow:hidden;background:radial-gradient(ellipse at 70% 30%,#263934,#111a17 40%,#080e0c 75%);padding:28px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate}#bantv-home-v3 .bh-cinema:after{content:\"\";pointer-events:none;position:absolute;inset:12px;border:1px solid #ffffff17;border-radius:22px}#bantv-home-v3 .bh-cinema-top,#bantv-home-v3 .bh-cinema-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.16em}#bantv-home-v3 .bh-cinema-top b{color:var(--lime);font-weight:500}#bantv-home-v3 .bh-brand-art{position:relative;align-self:center;width:100%;height:250px;perspective:700px;display:flex;flex-direction:column;justify-content:center}#bantv-home-v3 .bh-brand-word{font-size:clamp(80px,10.6vw,155px);font-weight:850;letter-spacing:-.09em;line-height:.82;white-space:nowrap;text-align:center;color:#e9f5dd;position:relative;z-index:1}#bantv-home-v3 .bh-brand-word em{font-style:normal;color:var(--lime)}#bantv-home-v3 .bh-brand-sub{text-align:center;letter-spacing:.5em;font-size:11px;margin-top:22px;color:#b6c8b4}#bantv-home-v3 .bh-orbit{position:absolute;width:105%;aspect-ratio:1;left:-2.5%;top:50%;border:1px solid #b7f34a44;border-radius:50%;transform:translateY(-50%) rotateX(62deg) rotateZ(-20deg)}#bantv-home-v3 .bh-orbit:before{content:\"\";position:absolute;left:50%;top:-3px;width:7px;height:7px;background:var(--lime);border-radius:50%;box-shadow:0 0 18px #b7f34a66}#bantv-home-v3 .bh-orbit-two{width:77%;left:11.5%;transform:translateY(-50%) rotateX(54deg) rotateZ(35deg);border-color:#ffffff22}#bantv-home-v3 .bh-play-round{border:1px solid #ffffff40;background:#ffffff0c;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;color:var(--paper);flex-shrink:0;transition:background .25s,transform .3s}#bantv-home-v3 .bh-play-round:hover{background:#b7f34a;color:#101808;transform:scale(1.06)}#bantv-home-v3 .bh-cinema-bottom span{max-width:240px;font-size:11px;line-height:1.7;letter-spacing:.04em}#bantv-home-v3 .bh-index{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:68px;padding-top:23px;font-size:12px;color:var(--muted)}#bantv-home-v3 .bh-index a{color:var(--paper);display:flex;align-items:center;gap:12px}#bantv-home-v3 .bh-index a:hover{color:var(--lime)}\n#bantv-home-v3 .bh-section{padding:110px 0}#bantv-home-v3 .bh-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px}#bantv-home-v3 .bh-section h2{font-size:clamp(40px,5.4vw,76px);margin-top:19px;max-width:840px}#bantv-home-v3 .bh-section-lead{color:var(--muted);font-size:18px;margin-top:22px;max-width:670px}#bantv-home-v3 .bh-text-link{font-size:14px;display:inline-flex;align-items:center;gap:20px;min-height:44px;flex-shrink:0;border-bottom:1px solid #ffffff40}#bantv-home-v3 .bh-text-link:hover{color:var(--lime);border-color:var(--lime)}#bantv-home-v3 .bh-film-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}#bantv-home-v3 .bh-film{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:#101411}#bantv-home-v3 .bh-film:first-child{grid-row:span 2}#bantv-home-v3 .bh-film-button{width:100%;height:100%;padding:0;text-align:left;background:transparent;border:0;color:var(--paper);display:flex;flex-direction:column}#bantv-home-v3 .bh-film-art{position:relative;min-height:170px;width:100%;flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#122019}#bantv-home-v3 .bh-film:first-child .bh-film-art{min-height:410px}#bantv-home-v3 .bh-film-art .bh-play-round{position:absolute;bottom:22px;right:22px;z-index:2}#bantv-home-v3 .bh-film-button:hover .bh-play-round{background:var(--lime);color:#101808;transform:scale(1.08)}#bantv-home-v3 .bh-film-text{padding:24px 28px;width:100%}#bantv-home-v3 .bh-film-meta{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#bac8bc;margin-bottom:10px;display:block}#bantv-home-v3 .bh-film h3{font-size:23px;line-height:1.2;letter-spacing:-.03em}#bantv-home-v3 .bh-film p{font-size:14px;color:var(--muted);margin-top:10px}#bantv-home-v3 .bh-moon-art{background:radial-gradient(ellipse at 55% 15%,#25394b,#111b27 50%,#080f18)!important;min-height:100%}#bantv-home-v3 .bh-moon{position:absolute;top:16%;left:50%;width:43%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 29% 30%,#cbd6dc,#6b8190 47%,#293e4a 70%);box-shadow:inset -20px -10px 40px #06121b,0 0 90px #9fb8cf19}#bantv-home-v3 .bh-moon:after{content:\"\";position:absolute;inset:15%;border-radius:50%;background:radial-gradient(ellipse at 24% 23%,#687f8a 0 10%,transparent 12%),radial-gradient(ellipse at 62% 65%,#465f6b 0 19%,transparent 21%),radial-gradient(ellipse at 75% 25%,#7d909b 0 7%,transparent 9%);opacity:.6}#bantv-home-v3 .bh-art-type{font-size:clamp(35px,4.5vw,65px);font-weight:750;line-height:1;letter-spacing:-.06em;position:absolute;bottom:50px;left:30px;max-width:70%;z-index:1}#bantv-home-v3 .bh-art-type small{font-size:10px;display:block;letter-spacing:.15em;line-height:1.5;margin-bottom:10px;color:#becad4}#bantv-home-v3 .bh-earth-line{position:absolute;width:160%;height:170px;background:linear-gradient(#3b665d,#081614);border-top:2px solid #86b6a0;bottom:-110px;border-radius:50%;left:-30%;transform:rotate(-12deg)}#bantv-home-v3 .bh-landscape{background:linear-gradient(#314b4b,#172d25)!important}#bantv-home-v3 .bh-landscape:before,#bantv-home-v3 .bh-landscape:after{content:\"\";position:absolute;bottom:-10%;left:-20%;width:140%;height:80%;border-radius:50% 50% 0 0;background:#0f241a;transform:rotate(12deg)}#bantv-home-v3 .bh-landscape:after{background:#26463a;bottom:-40%;transform:rotate(-13deg)}#bantv-home-v3 .bh-landscape .bh-art-type,#bantv-home-v3 .bh-radium .bh-art-type{font-size:32px;bottom:28px}#bantv-home-v3 .bh-radium{background:radial-gradient(circle at 65% 30%,#59462a,#1b1711 65%)!important}#bantv-home-v3 .bh-radium:before{content:\"325\";font-size:160px;line-height:1;font-weight:800;color:#a57a3a24;position:absolute;right:35px;top:-5px;letter-spacing:-.08em}#bantv-home-v3 .bh-video-note{font-size:12px;color:var(--muted);margin-top:18px}\n#bantv-home-v3 .bh-project-intro{padding-bottom:60px;border-top:1px solid var(--line)}#bantv-home-v3 .bh-project-jump{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}#bantv-home-v3 .bh-project-jump a{font-size:12px;padding:10px 16px;border:1px solid var(--line);border-radius:99px;transition:background .25s}#bantv-home-v3 .bh-project-jump a:hover{background:#ffffff12}#bantv-home-v3 .bh-project{position:relative;scroll-margin-top:90px}#bantv-home-v3 .bh-project h2{font-size:clamp(45px,5.6vw,80px);margin:25px 0}#bantv-home-v3 .bh-project p.bh-description{font-size:18px;color:var(--muted);max-width:490px}#bantv-home-v3 .bh-project-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}#bantv-home-v3 .bh-project-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;display:flex;gap:16px;align-items:center;color:var(--project-accent,var(--lime))}#bantv-home-v3 .bh-project-kicker b{font-size:14px;border:1px solid currentColor;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-weight:500;letter-spacing:0}#bantv-home-v3 .bh-project-subtitle{font-size:15px;letter-spacing:-.01em;display:block;font-weight:500;line-height:1.5;margin-top:14px;color:var(--project-accent)}#bantv-home-v3 .bh-features{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}#bantv-home-v3 .bh-features span{font-size:11px;color:#b8c5c2;border-radius:8px;padding:7px 10px;background:#ffffff06;border:1px solid #ffffff13}#bantv-home-v3 .bh-project-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;font-size:11px;color:#9badb9;letter-spacing:.02em}#bantv-home-v3 .bh-world{--project-accent:#91c9e9;background:radial-gradient(ellipse at 68% 45%,#122436,#0b1118 65%);height:185vh;min-height:1100px;border-top:1px solid #34414f}#bantv-home-v3 .bh-world-sticky{position:sticky;top:55px;min-height:calc(100vh - 55px);display:flex;align-items:center;padding:65px 0}#bantv-home-v3 .bh-world-logo{width:66px;height:66px;border-radius:16px;object-fit:cover;float:right}#bantv-home-v3 .bh-world-scene{position:relative;border:1px solid #ffffff18;border-radius:30px;background:linear-gradient(160deg,#111f2b88,#081018);padding:14px;overflow:hidden;box-shadow:0 30px 100px #0003}#bantv-home-v3 .bh-city-label{font-size:10px;letter-spacing:.16em;color:#aac2d0;position:absolute;top:24px;left:26px;text-transform:uppercase}#bantv-home-v3 .bh-world-scene .world-svg{width:100%;height:auto;overflow:visible;margin-top:10px}#bantv-home-v3 .bh-world-scene [data-ambient]{transform-box:fill-box;transform-origin:center}#bantv-home-v3 .bh-city-progress{height:2px;background:#ffffff12;margin:0 20px 22px;border-radius:4px;overflow:hidden}#bantv-home-v3 .bh-city-progress i{display:block;height:100%;background:#91c9e9;transform-origin:left;transform:scaleX(1)}#bantv-home-v3 .bh-archive{display:inline-block;margin-top:24px;font-size:12px;color:#94a8b8;border-bottom:1px solid #94a8b844}\n#bantv-home-v3 .bh-drop{--project-accent:#c0b8ff;background:#111117;padding:125px 0;border-top:1px solid #ffffff16}#bantv-home-v3 .bh-drop .bh-project-grid{grid-template-columns:1.15fr .85fr}#bantv-home-v3 .bh-drop .bh-project-copy{order:2}#bantv-home-v3 .bh-transfer{position:relative;aspect-ratio:1.12;display:flex;align-items:center;padding:25px 8% 45px 2%}#bantv-home-v3 .bh-desktop{width:91%;border-radius:22px;border:1px solid #aaa2cf44;background:linear-gradient(145deg,#292734,#181721);box-shadow:0 25px 80px #0005;overflow:hidden}#bantv-home-v3 .bh-window-bar{display:flex;gap:5px;border-bottom:1px solid #ffffff10;padding:16px 20px;align-items:center;font-size:10px;color:#b5b0c4}#bantv-home-v3 .bh-window-bar i{width:6px;height:6px;background:#655f79;border-radius:50%}#bantv-home-v3 .bh-window-bar span{margin-left:15px}#bantv-home-v3 .bh-window-body{padding:28px;min-height:250px}#bantv-home-v3 .bh-device-name{font-size:11px;letter-spacing:.1em;color:#c0b8ff;text-transform:uppercase}#bantv-home-v3 .bh-window-body h3{font-size:27px;margin:13px 0 24px}#bantv-home-v3 .bh-file{display:flex;align-items:center;gap:13px;padding:13px 15px;border:1px solid #c0b8ff2e;background:#c0b8ff08;border-radius:12px;margin-bottom:9px;font-size:12px;color:#e5e1f0}#bantv-home-v3 .bh-file-icon{font-size:19px;color:#c0b8ff}#bantv-home-v3 .bh-file small{display:block;font-size:10px;color:#aaa4ba}#bantv-home-v3 .bh-transfer-bar{height:3px;background:#ffffff12;margin-top:24px;border-radius:3px;overflow:hidden}#bantv-home-v3 .bh-transfer-bar i{display:block;height:100%;width:100%;transform:scaleX(1);transform-origin:left;background:#b7f34a}#bantv-home-v3 .bh-phone{position:absolute;right:0;bottom:25px;width:31%;height:63%;border:3px solid #5a546b;border-radius:29px;background:linear-gradient(150deg,#272333,#14121b);box-shadow:-12px 20px 60px #0008;padding:28px 12px 15px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}#bantv-home-v3 .bh-phone:before{content:\"\";position:absolute;width:35%;height:7px;top:9px;left:32.5%;background:#08070b;border-radius:10px}#bantv-home-v3 .bh-phone-check{font-size:35px;color:var(--lime);margin:15px 0}#bantv-home-v3 .bh-phone strong{font-size:12px}#bantv-home-v3 .bh-phone small{font-size:9px;color:#b8b0c7;line-height:1.5;margin-top:8px}#bantv-home-v3 .bh-flying-file{position:absolute;left:52%;top:27%;width:54px;height:65px;border:1px solid #d1cbff66;border-radius:12px;background:#48415f;box-shadow:0 15px 30px #0004;display:grid;place-items:center;font-size:24px;color:#d2caff;opacity:0}#bantv-home-v3 .bh-demo-caption{position:absolute;left:4%;bottom:0;font-size:10px;color:#aba2bd;letter-spacing:.05em}\n#bantv-home-v3 .bh-signal{--project-accent:#8eafff;background:radial-gradient(ellipse at 70% 50%,#10203c,#090f1b 70%);padding:125px 0;border-top:1px solid #ffffff14}#bantv-home-v3 .bh-dispatch{background:#0b1523;border:1px solid #7285ad38;border-radius:28px;overflow:hidden;position:relative}#bantv-home-v3 .bh-dispatch-head{padding:20px 24px;border-bottom:1px solid #ffffff12;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.13em;color:#9bb3da}#bantv-home-v3 .bh-dispatch-head b{font-weight:500;color:#ec9d9d}#bantv-home-v3 .bh-dispatch-map{position:relative;aspect-ratio:1.5;overflow:hidden;background:linear-gradient(26deg,transparent 45%,#111f30 45% 55%,transparent 55%),linear-gradient(116deg,transparent 40%,#111f30 40% 50%,transparent 50%),repeating-linear-gradient(0deg,transparent 0 45px,#25406638 46px 47px),repeating-linear-gradient(90deg,transparent 0 65px,#25406638 66px 67px);display:flex;align-items:center;justify-content:center}#bantv-home-v3 .bh-map-ring{position:absolute;width:200px;height:200px;border:1px solid #628ee942;border-radius:50%;box-shadow:0 0 0 55px #487ee909,0 0 0 100px #487ee905}#bantv-home-v3 .bh-map-core{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;border:1px solid #8eafff66;color:#c8d9ff;background:#1b3151;box-shadow:0 0 45px #477ce529;font-size:27px;transform:rotate(-10deg)}#bantv-home-v3 .bh-map-marker{position:absolute;width:12px;height:12px;background:#84a7f4;border:3px solid #dce8ff;border-radius:50%;box-shadow:0 0 0 8px #84a7f411}#bantv-home-v3 .bh-map-marker:nth-of-type(2){top:24%;left:23%}#bantv-home-v3 .bh-map-marker:nth-of-type(3){top:63%;left:75%;background:#e79191;border-color:#ffc1c1}#bantv-home-v3 .bh-map-marker:nth-of-type(4){top:75%;left:31%;background:#e9be72;border-color:#ffe3b2}#bantv-home-v3 .bh-service-tabs{display:flex;border-top:1px solid #ffffff12;flex-wrap:wrap;padding:13px;gap:7px}#bantv-home-v3 .bh-service-tabs button{border:1px solid #ffffff16;background:transparent;color:#b3c4df;border-radius:9px;padding:9px 13px;min-height:44px;font-size:11px;flex:1}#bantv-home-v3 .bh-service-tabs button[aria-pressed=true]{background:#7f9fe224;border-color:#8eafff77;color:#edf3ff}#bantv-home-v3 .bh-service-detail{padding:0 24px 22px;min-height:92px;font-size:13px;color:#afc0db}#bantv-home-v3 .bh-service-detail strong{display:block;color:#e8f0ff;font-size:15px;margin:6px 0}\n#bantv-home-v3 .bh-academy{--project-accent:#b8a8f5;background:#eeedf3;color:#1f1e29;padding:125px 0}#bantv-home-v3 .bh-academy .bh-project-kicker,#bantv-home-v3 .bh-academy .bh-project-subtitle{color:#6753a5}#bantv-home-v3 .bh-academy p.bh-description{color:#5e5b6c}#bantv-home-v3 .bh-academy .bh-btn{border-color:#27213033;color:#30283e;background:#ffffff66}#bantv-home-v3 .bh-academy .bh-btn-primary{background:#30283e;color:#fff;border-color:#30283e}#bantv-home-v3 .bh-academy .bh-project-grid{grid-template-columns:1.1fr .9fr}#bantv-home-v3 .bh-academy .bh-project-copy{order:2}#bantv-home-v3 .bh-learning{position:relative;padding:36px 30px 40px 0;min-height:450px;perspective:1000px}#bantv-home-v3 .bh-lesson-sheet{position:relative;background:#fff;border:1px solid #d6d1e2;box-shadow:0 24px 70px #31224810;border-radius:23px;padding:28px;z-index:2}#bantv-home-v3 .bh-lesson-back{position:absolute;inset:20px 55px 15px 20px;background:#ded8ee;border:1px solid #cbc3dc;border-radius:23px;transform:rotate(-7deg);z-index:0}#bantv-home-v3 .bh-lesson-back-two{inset:30px 35px 23px 12px;transform:rotate(4deg);background:#e7e2f0;z-index:1}#bantv-home-v3 .bh-lesson-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#746683;letter-spacing:.09em}#bantv-home-v3 .bh-lesson-heading b{font-size:19px;letter-spacing:-.04em;color:#3a2d49}#bantv-home-v3 .bh-cube{width:100%;height:210px;margin:15px auto;color:#8467ae}#bantv-home-v3 .bh-learning h3{font-size:28px;color:#352a42}#bantv-home-v3 .bh-learning p{font-size:13px;color:#746781;margin:13px 0 20px}#bantv-home-v3 .bh-lesson-topics{display:flex;flex-wrap:wrap;gap:7px}#bantv-home-v3 .bh-lesson-topics a{font-size:11px;border:1px solid #cec5db;border-radius:30px;padding:7px 11px;color:#59466d}#bantv-home-v3 .bh-lesson-topics a:hover{background:#f0e9f8}\n#bantv-home-v3 .bh-spark{--project-accent:#e9c08b;background:radial-gradient(ellipse at 65% 40%,#35291b,#100f0d 70%);padding:125px 0;border-top:1px solid #fff1}#bantv-home-v3 .bh-spark-scene{position:relative;aspect-ratio:.98;isolation:isolate;overflow:hidden;border:1px solid #8d72443d;border-radius:28px;background:linear-gradient(#161f1a,#141914 55%,#080c0a);display:flex;align-items:center;justify-content:center;flex-direction:column}#bantv-home-v3 .bh-spark-scene:before{content:\"\";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 65%,#dbab532e,transparent 55%)}#bantv-home-v3 .bh-forest{position:absolute;inset:0;opacity:.65;z-index:-1}#bantv-home-v3 .bh-forest path{fill:#080f0b}#bantv-home-v3 .bh-spark-scene .bh-film-meta{color:#cbb797;z-index:1;text-align:center;letter-spacing:.3em;font-size:10px}#bantv-home-v3 .bh-spark-title{font-family:Georgia,serif!important;font-size:clamp(45px,5.5vw,80px)!important;text-align:center;letter-spacing:-.06em!important;line-height:.98!important;text-shadow:0 2px 40px #000;color:#e3d2b7!important}#bantv-home-v3 .bh-spark-title span{display:block}#bantv-home-v3 .bh-spark-scene .bh-play-round{margin-top:34px;width:60px;height:60px;color:#e3d2b7}#bantv-home-v3 .bh-spark-age{position:absolute;right:24px;top:24px;font-size:11px;border:1px solid #e3d2b744;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;color:#e3d2b7}#bantv-home-v3 .bh-embers{position:absolute;inset:0;pointer-events:none}#bantv-home-v3 .bh-embers i{position:absolute;bottom:15%;left:35%;width:3px;height:3px;background:#edc387;border-radius:50%;opacity:.4}#bantv-home-v3 .bh-embers i:nth-child(2){left:65%;bottom:24%}#bantv-home-v3 .bh-embers i:nth-child(3){left:48%;bottom:34%}#bantv-home-v3 .bh-embers i:nth-child(4){left:76%;bottom:15%}\n#bantv-home-v3 .bh-about{background:#0d100e;border-top:1px solid var(--line)}#bantv-home-v3 .bh-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}#bantv-home-v3 .bh-about h2{font-size:clamp(42px,4.9vw,69px)}#bantv-home-v3 .bh-values{list-style:none;margin:0;padding:0}#bantv-home-v3 .bh-values li{border-bottom:1px solid var(--line);padding:24px 0;display:grid;grid-template-columns:35px 1fr;gap:15px}#bantv-home-v3 .bh-values li:first-child{padding-top:0}#bantv-home-v3 .bh-values li>span{color:var(--lime);font-size:11px;padding-top:6px}#bantv-home-v3 .bh-values h3{font-size:24px;letter-spacing:-.03em}#bantv-home-v3 .bh-values p{font-size:14px;color:var(--muted);margin-top:12px}#bantv-home-v3 .bh-join{position:relative;border-top:1px solid var(--line);background:radial-gradient(ellipse at 50% 100%,#24301677,transparent 75%);text-align:center;padding:120px 0 100px}#bantv-home-v3 .bh-join .bh-kicker{justify-content:center}#bantv-home-v3 .bh-join h2{margin:25px auto;max-width:900px;font-size:clamp(45px,7vw,96px)}#bantv-home-v3 .bh-join p{max-width:540px;margin:auto;color:var(--muted)}#bantv-home-v3 .bh-join .bh-actions{justify-content:center}#bantv-home-v3 .bh-endline{display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px;border-top:1px solid var(--line);padding:28px 0;color:#b2bcb2;font-size:11px;letter-spacing:.08em}#bantv-home-v3 .bh-endline a:hover{color:var(--lime)}\n#bantv-home-v3 .bh-intro{position:fixed;inset:0;z-index:2147483000;background:#060806;display:none;align-items:center;justify-content:center;overflow:hidden}#bantv-home-v3 .bh-intro.is-active{display:flex}#bantv-home-v3 .bh-intro-art{width:min(500px,75vw);position:relative;aspect-ratio:1.6;display:grid;place-items:center}#bantv-home-v3 .bh-intro-frame{position:absolute;inset:0;border:1px solid #b7f34a66;border-radius:40px}#bantv-home-v3 .bh-intro-frame:before,#bantv-home-v3 .bh-intro-frame:after{content:\"\";position:absolute;width:16px;height:16px;background:var(--lime);border-radius:50%;top:-8px;left:20%;box-shadow:0 0 35px #b7f34a44}#bantv-home-v3 .bh-intro-frame:after{top:auto;left:auto;right:20%;bottom:-8px}#bantv-home-v3 .bh-intro-word{font-size:clamp(62px,12vw,140px);font-weight:850;letter-spacing:-.085em;color:#f1f5ee;line-height:1}#bantv-home-v3 .bh-intro-word em{font-style:normal;color:var(--lime)}#bantv-home-v3 .bh-intro-label{position:absolute;bottom:26px;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:.35em;color:#a8b59c}#bantv-home-v3 .bh-intro-skip{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));right:25px;padding:12px 18px;border:1px solid #ffffff35;background:transparent;color:#b2beb0;border-radius:50px;font-size:12px;min-height:44px}\n#bantv-home-v3 .bh-dialog{position:fixed;inset:0;width:min(1060px,calc(100vw - 40px));height:fit-content;max-height:calc(100dvh - 36px);overflow:auto;border:1px solid #ffffff30;border-radius:25px;background:#121613;color:#edf3ea;padding:22px;box-shadow:0 35px 150px #000b;margin:auto;z-index:2147483100}#bantv-home-v3 .bh-dialog::backdrop{background:#030504db;backdrop-filter:blur(10px)}#bantv-home-v3 .bh-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:0 0 18px}#bantv-home-v3 .bh-dialog-title{font-size:18px!important;line-height:1.3!important;letter-spacing:-.02em!important}#bantv-home-v3 .bh-dialog-close{font-size:24px;line-height:1;width:44px;height:44px;border:1px solid #ffffff30;border-radius:50%;background:#ffffff05;color:#fff;flex-shrink:0}#bantv-home-v3 .bh-player{aspect-ratio:16\/9;position:relative;background:#030504;border-radius:12px;overflow:hidden}#bantv-home-v3 .bh-player iframe{width:100%;height:100%;border:0;position:absolute;inset:0}#bantv-home-v3 .bh-dialog-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;color:#acb9ac;margin-top:18px}#bantv-home-v3 .bh-dialog-foot a{color:var(--lime);text-decoration:underline;flex-shrink:0}#bantv-home-v3 .bh-nojs{font-size:13px;padding:16px;background:#202b17;border:1px solid #b7f34a33;border-radius:12px;margin-top:20px}#bantv-home-v3.bh-paused *{animation-play-state:paused!important}#bantv-home-v3 .bh-progress-line{height:2px;background:var(--lime);position:fixed;left:0;top:0;width:100%;transform:scaleX(0);transform-origin:left;z-index:10000;pointer-events:none}\n#bantv-home-v3{padding-top:85px}#bantv-home-v3 :is(h1,h2,h3){padding:0}#bantv-home-v3 .bh-hero-copy>p.bh-kicker{font-size:12px;line-height:1.5;color:var(--lime)}#bantv-home-v3.bh-paused .bh-world{height:auto;min-height:0;padding:80px 0}#bantv-home-v3.bh-paused .bh-world-sticky{position:relative;top:auto;min-height:0;padding:0}#bantv-home-v3 [id]{scroll-margin-top:90px}\n@media(max-width:767px){#bantv-home-v3{padding-top:72px}#bantv-home-v3 .bh-hero-copy>p.bh-kicker{font-size:10px}}\n\/* Prepared offscreen states avoid the old visible \u2192 translucent flash. *\/\n#bantv-home-v3 .bh-reveal-pending{opacity:0;transform:translate3d(0,18px,0)}\n#bantv-home-v3 .bh-film-engine{grid-column:1\/-1}#bantv-home-v3 .bh-film-engine .bh-film-button{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}#bantv-home-v3 .bh-film-engine .bh-film-art{min-height:270px}#bantv-home-v3 .bh-film-engine .bh-film-text{align-self:center;padding:32px 38px}#bantv-home-v3 .bh-film-engine .bh-text-link{margin-top:19px;font-size:12px}#bantv-home-v3 .bh-engine-art{background:radial-gradient(ellipse at 60% 30%,#2c424c,#111f27 65%)!important;flex-direction:column;justify-content:center}#bantv-home-v3 .bh-car-art{width:88%;max-width:550px;margin:0 auto 10px}#bantv-home-v3 .bh-engine-label{position:absolute;top:23px;left:25px;color:#adbdc6;letter-spacing:.22em;font-size:11px}\n#bantv-home-v3 .bh-dialog-portrait{width:min(460px,calc(100vw - 20px))}#bantv-home-v3 .bh-dialog-portrait .bh-player{aspect-ratio:9\/16;width:auto;height:min(66dvh,650px);max-width:100%;margin-inline:auto}#bantv-home-v3 .bh-dialog-portrait .bh-dialog-title{font-size:16px!important}#bantv-home-v3 .bh-dialog-portrait .bh-dialog-foot{flex-direction:column;align-items:flex-start;gap:9px}\n@media(max-width:767px){#bantv-home-v3 .bh-film-engine .bh-film-button{grid-template-columns:1fr}#bantv-home-v3 .bh-film-engine .bh-film-art{min-height:230px}#bantv-home-v3 .bh-film-engine .bh-film-text{padding:24px 20px}#bantv-home-v3 .bh-dialog-portrait .bh-player{height:min(62dvh,650px)}}\n@media(prefers-reduced-motion:reduce){#bantv-home-v3 .bh-reveal-pending{opacity:1;transform:none}}#bantv-home-v3.bh-paused .bh-reveal-pending{opacity:1;transform:none}\n@media(min-width:1800px){#bantv-home-v3 .bh-wrap{width:min(1420px,calc(100% - 120px))}#bantv-home-v3 .bh-hero h1{font-size:120px}#bantv-home-v3 .bh-brand-word{font-size:180px}}\n@media(max-width:1100px){#bantv-home-v3 .bh-wrap{width:calc(100% - 56px)}#bantv-home-v3 .bh-hero-grid{gap:30px}#bantv-home-v3 .bh-hero h1{font-size:clamp(55px,7vw,82px)}#bantv-home-v3 .bh-project-grid{gap:32px;grid-template-columns:.9fr 1.1fr}#bantv-home-v3 .bh-project h2{font-size:58px}#bantv-home-v3 .bh-window-body{padding:22px 20px}#bantv-home-v3 .bh-phone{width:33%}#bantv-home-v3 .bh-film-text{padding:20px}#bantv-home-v3 .bh-about-grid{gap:45px}#bantv-home-v3 .bh-world{min-height:1000px}#bantv-home-v3 .bh-world-sticky{top:40px;min-height:calc(100vh - 40px)}}\n@media(max-width:767px){#bantv-home-v3{font-size:16px}#bantv-home-v3 .bh-wrap{width:calc(100% - 36px)}#bantv-home-v3 .bh-topline{padding-top:20px;font-size:9px;letter-spacing:.07em;gap:12px}#bantv-home-v3 .bh-motion{font-size:10px;padding:7px 10px}#bantv-home-v3 .bh-hero{padding:45px 0 35px}#bantv-home-v3 .bh-hero-grid{grid-template-columns:1fr;gap:38px}#bantv-home-v3 .bh-hero h1{font-size:clamp(54px,12vw,84px);letter-spacing:-.06em;margin-top:20px}#bantv-home-v3 .bh-hero-copy>p{font-size:16px;max-width:520px}#bantv-home-v3 .bh-hero-note{font-size:11px!important;margin-top:18px}#bantv-home-v3 .bh-actions{gap:10px;margin-top:25px}#bantv-home-v3 .bh-btn{font-size:12px;min-height:48px;padding:12px 19px;gap:15px}#bantv-home-v3 .bh-cinema{aspect-ratio:1.35;max-width:600px;margin:auto;padding:22px;border-radius:25px}#bantv-home-v3 .bh-brand-art{height:180px}#bantv-home-v3 .bh-brand-word{font-size:clamp(90px,22vw,150px)}#bantv-home-v3 .bh-brand-sub{font-size:9px}#bantv-home-v3 .bh-cinema-top,#bantv-home-v3 .bh-cinema-bottom{font-size:9px}#bantv-home-v3 .bh-cinema-bottom span{font-size:10px;max-width:230px}#bantv-home-v3 .bh-index{margin-top:35px;gap:12px;flex-wrap:wrap;font-size:10px}#bantv-home-v3 .bh-index a{min-height:35px}#bantv-home-v3 .bh-section{padding:74px 0}#bantv-home-v3 .bh-section h2{font-size:clamp(38px,9vw,58px)}#bantv-home-v3 .bh-heading-row{align-items:flex-start;flex-direction:column;gap:24px;margin-bottom:30px}#bantv-home-v3 .bh-section-lead{font-size:16px}#bantv-home-v3 .bh-film-grid{grid-template-columns:1fr;gap:18px}#bantv-home-v3 .bh-film:first-child{grid-row:auto}#bantv-home-v3 .bh-film:first-child .bh-film-art{min-height:300px}#bantv-home-v3 .bh-film-art{min-height:210px}#bantv-home-v3 .bh-film h3{font-size:22px}#bantv-home-v3 .bh-film p{font-size:13px}#bantv-home-v3 .bh-art-type{font-size:45px;left:24px;bottom:45px}#bantv-home-v3 .bh-project-intro{padding-bottom:40px}#bantv-home-v3 .bh-project-jump{gap:8px}#bantv-home-v3 .bh-project-jump a{font-size:11px;padding:9px 13px}#bantv-home-v3 .bh-project-grid,#bantv-home-v3 .bh-drop .bh-project-grid,#bantv-home-v3 .bh-academy .bh-project-grid{grid-template-columns:1fr;gap:34px}#bantv-home-v3 .bh-project h2{font-size:clamp(45px,11vw,65px);margin:22px 0}#bantv-home-v3 .bh-project p.bh-description{font-size:16px;max-width:600px}#bantv-home-v3 .bh-project-subtitle{font-size:14px}#bantv-home-v3 .bh-drop .bh-project-copy,#bantv-home-v3 .bh-academy .bh-project-copy{order:0}#bantv-home-v3 .bh-world{height:auto;min-height:0;padding:75px 0}#bantv-home-v3 .bh-world-sticky{position:relative;top:auto;min-height:0;padding:0}#bantv-home-v3 .bh-world-scene{padding:10px;border-radius:23px}#bantv-home-v3 .bh-city-label{font-size:8px;top:17px;left:18px}#bantv-home-v3 .bh-project-caption{font-size:10px;margin-top:14px}#bantv-home-v3 .bh-world-logo{width:55px;height:55px}#bantv-home-v3 .bh-drop,#bantv-home-v3 .bh-signal,#bantv-home-v3 .bh-academy,#bantv-home-v3 .bh-spark{padding:75px 0}#bantv-home-v3 .bh-transfer{max-width:580px;width:100%;margin:auto;aspect-ratio:1.13;padding-bottom:45px}#bantv-home-v3 .bh-window-body{padding:22px;min-height:210px}#bantv-home-v3 .bh-phone{height:64%;bottom:32px}#bantv-home-v3 .bh-learning{min-height:400px;padding:25px 17px 25px 0;max-width:560px;width:100%;margin:auto}#bantv-home-v3 .bh-lesson-sheet{padding:24px}#bantv-home-v3 .bh-cube{height:180px}#bantv-home-v3 .bh-spark-scene{aspect-ratio:1.1;max-width:600px;width:100%;margin:auto}#bantv-home-v3 .bh-spark-title{font-size:70px!important}#bantv-home-v3 .bh-about-grid{grid-template-columns:1fr;gap:40px}#bantv-home-v3 .bh-values h3{font-size:23px}#bantv-home-v3 .bh-join{padding:75px 0 65px}#bantv-home-v3 .bh-join h2{font-size:clamp(44px,10vw,70px)}#bantv-home-v3 .bh-join p{font-size:15px}#bantv-home-v3 .bh-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:14px;border-radius:18px}#bantv-home-v3 .bh-dialog-title{font-size:14px!important}#bantv-home-v3 .bh-dialog-foot{font-size:10px;align-items:flex-start;flex-direction:column;gap:10px}#bantv-home-v3 .bh-dialog-close{width:42px;height:42px}#bantv-home-v3 .bh-intro-frame{border-radius:25px}}\n@media(max-width:380px){#bantv-home-v3 .bh-wrap{width:calc(100% - 28px)}#bantv-home-v3 .bh-hero h1{font-size:51px}#bantv-home-v3 .bh-topline>span{max-width:150px}#bantv-home-v3 .bh-cinema{padding:20px;aspect-ratio:1.14}#bantv-home-v3 .bh-brand-word{font-size:84px}#bantv-home-v3 .bh-window-body{padding:17px 12px}#bantv-home-v3 .bh-window-body h3{font-size:22px}#bantv-home-v3 .bh-file{font-size:10px;padding:11px 9px}#bantv-home-v3 .bh-phone{padding:20px 8px 10px}#bantv-home-v3 .bh-phone strong{font-size:10px}#bantv-home-v3 .bh-service-tabs{gap:5px;padding:10px}#bantv-home-v3 .bh-service-tabs button{padding:8px;font-size:10px}#bantv-home-v3 .bh-service-detail{min-height:110px}#bantv-home-v3 .bh-learning h3{font-size:25px}}\n@media(prefers-reduced-motion:reduce){#bantv-home-v3 *,#bantv-home-v3 *:before,#bantv-home-v3 *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#bantv-home-v3 .bh-intro{display:none!important}#bantv-home-v3 .bh-world{height:auto;min-height:0;padding:80px 0}#bantv-home-v3 .bh-world-sticky{position:relative;top:auto;min-height:0;padding:0}}\n\n\/* Journey 4.0. Progressive enhancement: standard layout is the default. *\/\n#bantv-home-v3 .bh-journey-stage{display:none;position:fixed;inset:0;z-index:0;pointer-events:none;background:#080d0b;overflow:hidden}\n#bantv-home-v3 .bh-journey-canvas{width:100%;height:100%;display:block}\n#bantv-home-v3 .bh-journey-shade{position:absolute;inset:0;background:linear-gradient(90deg,#070d0b70,transparent 55%),radial-gradient(ellipse at 50% 50%,transparent 45%,#050a092b)}\n#bantv-home-v3 .bh-journey-stage:after{content:\"\";position:absolute;inset:0;background:radial-gradient(ellipse at 74% 63%,#98beb011,transparent 58%);pointer-events:none}\n#bantv-home-v3 .bh-journey-rail{position:fixed;left:44px;bottom:22px;z-index:9;display:flex;align-items:center;gap:15px;max-width:calc(100vw - 88px);padding:9px 16px;border:1px solid #b7cfbf32;background:#0b1212eb;border-radius:40px;box-shadow:0 8px 35px #0003;color:#cbd7cf;font-size:10px;letter-spacing:.05em}\n#bantv-home-v3 .bh-journey-current{min-width:108px}#bantv-home-v3 .bh-journey-dots{display:flex;gap:0}#bantv-home-v3 .bh-journey-dots a{width:30px;height:30px;display:grid;place-items:center;border-radius:50%}#bantv-home-v3 .bh-journey-dots a:before{content:\"\";width:4px;height:4px;background:#8d9e96;border-radius:50%;transition:transform .3s,background .3s}#bantv-home-v3 .bh-journey-dots a[aria-current]:before{background:var(--lime);transform:scale(1.65)}#bantv-home-v3 .bh-journey-dots a:hover:before{background:#e6f0e4}\n#bantv-home-v3 .bh-journey-rail .bh-journey-hint{color:#93a69b;border-left:1px solid #ffffff21;padding-left:14px}\n#bantv-home-v3 .bh-journey-note{display:none}\n\/* New product palettes are shared by desktop and touch layouts. *\/\n#bantv-home-v3 .bh-drop{--project-accent:#a8dbed;background:radial-gradient(ellipse at 65% 35%,#1b3344,#0b131c 70%)}\n#bantv-home-v3 .bh-desktop{background:linear-gradient(145deg,#263944,#121f2a);border-color:#b8d6e24d;box-shadow:0 30px 90px #0005,inset 0 1px #d6eaff33}\n#bantv-home-v3 .bh-window-bar{color:#afc8d4}#bantv-home-v3 .bh-window-bar i{background:#6e8b99}#bantv-home-v3 .bh-device-name{color:#a8dbea}#bantv-home-v3 .bh-file{border-color:#b5dcf026;background:#a2d5ec09;color:#e5eef2}#bantv-home-v3 .bh-file-icon{color:#9ed6eb}#bantv-home-v3 .bh-file small{color:#a2b9c4}#bantv-home-v3 .bh-phone{background:linear-gradient(150deg,#2e4554,#13222c);border-color:#7695a5;box-shadow:-12px 20px 60px #0008,inset 0 1px #d3e9ff66}#bantv-home-v3 .bh-phone small,#bantv-home-v3 .bh-demo-caption{color:#a7c0cc}#bantv-home-v3 .bh-flying-file{background:#3d677e;color:#d8f3ff;border-color:#c5ebff66}\n#bantv-home-v3 .bh-spark{--project-accent:#a9c8b9;background:radial-gradient(ellipse at 70% 35%,#25433b,#091512 73%)}#bantv-home-v3 .bh-spark-scene{border-color:#91b4a536;background:radial-gradient(ellipse at 65% 50%,#35564b,#12261f 60%,#080f0c)}#bantv-home-v3 .bh-spark-scene:before{background:radial-gradient(ellipse at 50% 80%,#b79d5e25,transparent 45%)}#bantv-home-v3 .bh-spark-title{color:#d6e2d9!important}#bantv-home-v3 .bh-spark-scene .bh-film-meta{color:#adc5b8}#bantv-home-v3 .bh-embers i{background:#bbcfbf}\n#bantv-home-v3 .bh-intro{background:radial-gradient(ellipse at 50% 50%,#17231c,#040706 62%)}#bantv-home-v3 .bh-intro-art{perspective:850px;aspect-ratio:1.4}#bantv-home-v3 .bh-intro-frame{border-radius:50%;border-color:#c0ed7b77;box-shadow:0 0 90px #a9d56910,inset 0 0 70px #a9d5690a}#bantv-home-v3 .bh-intro-frame:after{width:8px;height:8px}#bantv-home-v3 .bh-intro-label{bottom:0;color:#aebfae}#bantv-home-v3 .bh-intro-word{position:relative;text-shadow:0 0 65px #b6ed7130}\n@media(min-width:1100px) and (min-height:650px) and (hover:hover) and (pointer:fine){\n #bantv-home-v3.bh-immersive{background:transparent;--muted:#b2c0ba}\n #bantv-home-v3.bh-immersive>section,#bantv-home-v3.bh-immersive>.bh-wrap{position:relative;z-index:1}\n #bantv-home-v3.bh-immersive .bh-topline{padding-top:24px}\n #bantv-home-v3.bh-immersive .bh-hero{min-height:calc(100svh - 150px);padding:50px 0 65px}\n #bantv-home-v3.bh-immersive .bh-hero:before{display:none}\n #bantv-home-v3.bh-immersive .bh-hero-grid{gap:42px;min-height:calc(100svh - 340px);grid-template-columns:.95fr 1.05fr}\n #bantv-home-v3.bh-immersive .bh-hero h1{font-size:clamp(68px,7.2vw,112px);line-height:1.01}\n #bantv-home-v3.bh-immersive .bh-hero-copy>p{font-size:17px;max-width:450px}\n #bantv-home-v3.bh-immersive .bh-cinema{background:none;border:0;box-shadow:none;overflow:visible;aspect-ratio:auto;min-height:480px;padding:20px 0}\n #bantv-home-v3.bh-immersive .bh-cinema:after{display:none}\n #bantv-home-v3.bh-immersive .bh-cinema-top{justify-content:flex-end;opacity:.65;font-size:9px}\n #bantv-home-v3.bh-immersive .bh-cinema-top b{display:none}\n #bantv-home-v3.bh-immersive .bh-brand-word{font-size:clamp(94px,10vw,156px);text-shadow:0 3px 40px #0007}\n #bantv-home-v3.bh-immersive .bh-brand-sub{color:#d1dfcc}\n #bantv-home-v3.bh-immersive .bh-orbit{display:none}\n #bantv-home-v3.bh-immersive .bh-cinema-bottom{max-width:330px;align-self:flex-end;margin-top:30px}\n #bantv-home-v3.bh-immersive .bh-index{margin-top:35px}\n #bantv-home-v3.bh-immersive .bh-journey-note{display:block;font-size:11px;color:#a8baad;margin-top:18px;letter-spacing:.02em}\n #bantv-home-v3.bh-immersive #bh-releases{padding:150px 0 120px;background:linear-gradient(180deg,transparent,#080f16c9 36%,#080f1644)}\n #bantv-home-v3.bh-immersive .bh-film{background:#101a20c9;border-color:#adcdd62b;box-shadow:0 25px 70px #0002;transition:transform .6s var(--curve),border-color .5s}\n #bantv-home-v3.bh-immersive .bh-film:hover{transform:translateY(-6px);border-color:#adcdd669}\n #bantv-home-v3.bh-immersive .bh-film-art{isolation:isolate}\n #bantv-home-v3.bh-immersive .bh-project-intro{padding:130px 0 140px;background:linear-gradient(180deg,#080f1644,transparent)}\n #bantv-home-v3.bh-immersive .bh-project{height:145vh;min-height:980px;padding:0;border:0;background:transparent}\n #bantv-home-v3.bh-immersive .bh-world{height:190vh;min-height:1250px}\n #bantv-home-v3.bh-immersive .bh-project>.bh-project-grid,#bantv-home-v3.bh-immersive .bh-world-sticky{position:sticky;top:95px;min-height:calc(100svh - 110px);padding:40px 0 70px;align-items:center}\n #bantv-home-v3.bh-immersive .bh-project-grid,#bantv-home-v3.bh-immersive .bh-drop .bh-project-grid,#bantv-home-v3.bh-immersive .bh-academy .bh-project-grid{grid-template-columns:.85fr 1.15fr;gap:65px}\n #bantv-home-v3.bh-immersive .bh-project-copy{order:0;max-width:470px}\n #bantv-home-v3.bh-immersive .bh-project h2{font-size:clamp(60px,5.5vw,88px);line-height:1.02}\n #bantv-home-v3.bh-immersive .bh-project p.bh-description{font-size:16px;line-height:1.7}\n #bantv-home-v3.bh-immersive .bh-project-subtitle{font-size:16px;max-width:370px;line-height:1.5}\n #bantv-home-v3.bh-immersive .bh-project-copy .bh-actions{gap:10px}\n #bantv-home-v3.bh-immersive .bh-project-copy .bh-btn{font-size:12px;padding:13px 19px}\n #bantv-home-v3.bh-immersive .bh-world-scene{height:55vh;min-height:340px;background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;pointer-events:none}\n #bantv-home-v3.bh-immersive .bh-world-scene .world-svg{visibility:hidden;height:100%;width:100%}\n #bantv-home-v3.bh-immersive .bh-city-label{top:0;left:15px;color:#b5d3d8;font-size:9px;letter-spacing:.18em}\n #bantv-home-v3.bh-immersive .bh-city-progress{position:absolute;bottom:0;left:0;right:0;margin:0 15px}\n #bantv-home-v3.bh-immersive .bh-project-caption{padding:0 15px;color:#c4d7d8}\n #bantv-home-v3.bh-immersive .bh-world-logo{width:55px;height:55px;float:none;margin-bottom:22px}\n #bantv-home-v3.bh-immersive .bh-transfer{perspective:1100px;transform:translateY(20px);min-width:0}\n #bantv-home-v3.bh-immersive .bh-desktop{transform:rotateY(-11deg) rotateX(4deg);transform-origin:left center;border-radius:22px}\n #bantv-home-v3.bh-immersive .bh-phone{transform:rotateY(-10deg) rotateZ(3deg)}\n #bantv-home-v3.bh-immersive .bh-dispatch{background:#0a1421d9;border-color:#a3c2e036;box-shadow:0 30px 90px #0003;transform:perspective(1200px) rotateY(-5deg)}\n #bantv-home-v3.bh-immersive .bh-dispatch-map{background-color:transparent}\n #bantv-home-v3.bh-immersive .bh-academy{color:#22343b}\n #bantv-home-v3.bh-immersive .bh-academy .bh-project-kicker,#bantv-home-v3.bh-immersive .bh-academy .bh-project-subtitle{color:#466477}\n #bantv-home-v3.bh-immersive .bh-academy p.bh-description{color:#415962}\n #bantv-home-v3.bh-immersive .bh-academy .bh-btn-primary{background:#263f49;border-color:#263f49}\n #bantv-home-v3.bh-immersive .bh-learning{padding:0;min-height:55vh;display:flex;align-items:stretch}\n #bantv-home-v3.bh-immersive .bh-lesson-sheet{border:0;background:none;box-shadow:none;padding:0;width:100%;display:flex;flex-direction:column;justify-content:flex-end}\n #bantv-home-v3.bh-immersive .bh-lesson-heading{position:absolute;top:10px;left:0;right:0;color:#526e7c}\n #bantv-home-v3.bh-immersive .bh-lesson-heading b{color:#324f60}\n #bantv-home-v3.bh-immersive .bh-cube,#bantv-home-v3.bh-immersive .bh-lesson-back{display:none}\n #bantv-home-v3.bh-immersive .bh-learning h3{font-size:25px;color:#294450}\n #bantv-home-v3.bh-immersive .bh-learning p{color:#526b75;max-width:370px}\n #bantv-home-v3.bh-immersive .bh-lesson-topics a{border-color:#69869166;color:#355563;background:#eef4f288}\n #bantv-home-v3.bh-immersive .bh-spark-scene{border:0;background:none;overflow:visible;aspect-ratio:auto;min-height:55vh;justify-content:flex-start;padding-top:25px}\n #bantv-home-v3.bh-immersive .bh-spark-scene:before,#bantv-home-v3.bh-immersive .bh-forest{display:none}\n #bantv-home-v3.bh-immersive .bh-spark-title{font-size:clamp(70px,8vw,120px)!important;font-weight:400;line-height:.95!important;margin-top:18px;text-shadow:0 5px 60px #0008}\n #bantv-home-v3.bh-immersive .bh-spark-scene .bh-film-meta{font-size:9px}\n #bantv-home-v3.bh-immersive .bh-spark-age{top:0;right:0}\n #bantv-home-v3.bh-immersive .bh-spark-scene .bh-play-round{margin-top:25px;background:#0d201ecc}\n #bantv-home-v3.bh-immersive .bh-about{border:0;background:linear-gradient(180deg,transparent,#080e0cdd);padding:150px 0}\n #bantv-home-v3.bh-immersive .bh-join{background:#080e0c55;border-color:#b7cdbe24;padding:150px 0}\n #bantv-home-v3.bh-immersive .bh-endline{padding-bottom:100px}\n #bantv-home-v3.bh-immersive .bh-join h2{text-shadow:0 8px 50px #080e0c}\n #bantv-home-v3.bh-immersive[data-chapter=\"5\"] .bh-journey-shade{background:linear-gradient(90deg,#e4e8eb55,transparent 60%)}\n}\n@media(min-width:1100px) and (max-height:800px) and (min-height:650px){\n #bantv-home-v3.bh-immersive .bh-project h2{font-size:56px;margin:18px 0}\n #bantv-home-v3.bh-immersive .bh-project p.bh-description{font-size:15px}\n #bantv-home-v3.bh-immersive .bh-world-logo{display:none}\n #bantv-home-v3.bh-immersive .bh-project>.bh-project-grid,#bantv-home-v3.bh-immersive .bh-world-sticky{padding-top:15px;padding-bottom:50px}\n #bantv-home-v3.bh-immersive .bh-project-copy .bh-actions{margin-top:20px}\n #bantv-home-v3.bh-immersive .bh-hero h1{font-size:70px}\n #bantv-home-v3.bh-immersive .bh-hero{padding-top:25px}\n #bantv-home-v3.bh-immersive .bh-cinema{min-height:400px}\n}\n@media(max-width:1099px),(hover:none),(pointer:coarse){#bantv-home-v3 .bh-journey-stage,#bantv-home-v3 .bh-journey-rail{display:none!important}}\n@media(min-width:768px) and (max-width:1099px){#bantv-home-v3 .bh-world{height:auto;min-height:0;padding:90px 0}#bantv-home-v3 .bh-world-sticky{position:relative;top:auto;min-height:0;padding:0}#bantv-home-v3 .bh-project-grid{gap:32px}#bantv-home-v3 .bh-project h2{font-size:50px}}\n@media(prefers-reduced-motion:reduce){#bantv-home-v3 .bh-journey-stage,#bantv-home-v3 .bh-journey-rail{display:none!important}}\n\/* Software-friendly journey when WebGL is unavailable. *\/\n#bantv-home-v3 .bh-vector-layer{display:none;position:absolute;inset:0;opacity:0;will-change:transform,opacity;transform-origin:70% 50%}\n#bantv-home-v3 .bh-vector-layer>svg{width:100%;height:100%;max-width:none}\n#bantv-home-v3.bh-vector .bh-vector-layer{display:block}\n#bantv-home-v3.bh-vector .bh-journey-canvas{display:none}\n#bantv-home-v3 .bh-vector-cube-space{position:absolute;left:73%;top:43%;perspective:1000px;z-index:1}\n#bantv-home-v3 .bh-vector-cube{width:170px;height:170px;transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(35deg);position:relative;margin:-85px 0 0 -85px}\n#bantv-home-v3 .bh-vector-cube i{display:block;position:absolute;inset:0;border:1px solid #506f8080;background:repeating-linear-gradient(0deg,transparent 0 33px,#e4f1f54d 33px 34px),repeating-linear-gradient(90deg,transparent 0 33px,#e4f1f54d 33px 34px),linear-gradient(135deg,#b6cdd6,#839faf);backface-visibility:hidden}\n#bantv-home-v3 .bh-face-0{transform:translateZ(85px)}#bantv-home-v3 .bh-face-1{transform:rotateY(90deg) translateZ(85px)}#bantv-home-v3 .bh-face-2{transform:rotateY(180deg) translateZ(85px)}#bantv-home-v3 .bh-face-3{transform:rotateY(-90deg) translateZ(85px)}#bantv-home-v3 .bh-face-4{transform:rotateX(90deg) translateZ(85px)}#bantv-home-v3 .bh-face-5{transform:rotateX(-90deg) translateZ(85px)}\n@media(min-width:1100px) and (min-height:650px) and (hover:hover) and (pointer:fine){\n #bantv-home-v3.bh-immersive.bh-vector .bh-world-scene .world-svg{visibility:visible;position:absolute;inset:0;width:115%;max-width:none;height:100%;margin:0;filter:drop-shadow(0 35px 35px #0003)}\n #bantv-home-v3.bh-immersive.bh-vector .bh-world-scene{overflow:visible}\n #bantv-home-v3.bh-immersive.bh-vector .bh-city-label{z-index:1;top:-15px}\n #bantv-home-v3.bh-immersive.bh-vector .bh-city-progress{bottom:-12px}\n #bantv-home-v3.bh-immersive.bh-vector .bh-project-caption{margin-top:30px}\n}\nbody.btv-theme-active #bantv-home-v3 .bh-progress-line{display:none}\n#bantv-home-v3.bh-immersive .bh-hero-copy>p.bh-kicker{font-size:12px;line-height:1.5}\n#bantv-home-v3.bh-immersive .bh-hero-copy>p.bh-journey-note{font-size:11px;line-height:1.6}\n#bantv-home-v3.bh-immersive .bh-academy{color:color-mix(in srgb,#22343b calc(var(--journey-light,1)*100%),#edf4ee)}\n#bantv-home-v3.bh-immersive .bh-academy p.bh-description{color:color-mix(in srgb,#415962 calc(var(--journey-light,1)*100%),#c7d6d3)}\n#bantv-home-v3.bh-vector .bh-vector-orbit{animation:bh-vector-float 15s ease-in-out infinite alternate}\n#bantv-home-v3.bh-vector .bh-vector-mist{animation:bh-vector-mist 20s ease-in-out infinite alternate}\n#bantv-home-v3.bh-video-open .bh-vector-layer svg{animation-play-state:paused}\n@keyframes bh-vector-float{from{transform:translateY(-7px) rotate(-1deg)}to{transform:translateY(7px) rotate(1deg)}}\n@keyframes bh-vector-mist{from{transform:translateX(-30px);opacity:.7}to{transform:translateX(30px);opacity:1}}\n#bantv-home-v3 .bh-journey-shade{background:linear-gradient(90deg,#070d0b99,transparent 57%),radial-gradient(ellipse at 50% 50%,transparent 45%,#050a092b)}\n\n\/* Journey 4.1 \u2014 connected scenes, responsive product feedback. *\/\n#bantv-home-v3 .bh-scene-thread{position:absolute;inset:-10%;pointer-events:none;opacity:0;will-change:transform,opacity}\n#bantv-home-v3 .bh-scene-thread svg{width:100%;height:100%;overflow:visible}\n#bantv-home-v3 .bh-scene-thread path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-dasharray:25 75;stroke-dashoffset:var(--thread-offset,0)}\n#bantv-home-v3 .bh-transfer-steps{display:flex;gap:12px;margin:20px 0 10px;font-size:10px;color:#859ba9}\n#bantv-home-v3 .bh-transfer-steps span{transition:color .5s,opacity .5s;opacity:.55}\n#bantv-home-v3 .bh-transfer-steps .is-current{color:#d7f1ff;opacity:1}\n#bantv-home-v3 .bh-transfer-status{min-height:2.5em}\n#bantv-home-v3 .bh-phone-check{transition:opacity .5s,box-shadow .7s}\n#bantv-home-v3 .bh-transfer[data-phase=\"3\"] .bh-phone-check{box-shadow:0 0 40px #b7e1ff28}\n#bantv-home-v3 .bh-service-route{position:absolute;inset:0;width:100%;height:100%;color:var(--service-color,#8eafff);transition:color .6s}\n#bantv-home-v3 .bh-service-route path{fill:none;stroke:currentColor;stroke-linejoin:round;stroke-linecap:round}\n#bantv-home-v3 .bh-service-track{stroke-width:2;opacity:.25}\n#bantv-home-v3 .bh-service-flow{stroke-width:3;stroke-dasharray:8 92;animation:bh-service-travel 5s linear infinite}\n#bantv-home-v3 .bh-map-marker{background:var(--service-color,#8eafff);transition:background .5s,transform .8s}\n#bantv-home-v3[data-service=\"medical\"] .bh-map-marker{transform:translate(24px,-12px)}\n#bantv-home-v3[data-service=\"fire\"] .bh-map-marker{transform:translate(-18px,20px)}\n#bantv-home-v3[data-service=\"road\"] .bh-map-marker{transform:translate(30px,15px)}\n#bantv-home-v3 .bh-vector-layer[data-vector=\"4\"] .bh-vector-route{stroke:var(--service-color,#8eafff);transition:stroke .6s}\n#bantv-home-v3.bh-immersive .bh-vector-cube i{opacity:calc(.12 + var(--academy-surface,1)*.88);transition:opacity .12s linear}\n#bantv-home-v3 .bh-poster{transition:transform .65s cubic-bezier(.22,.7,.2,1),box-shadow .65s}\n@media(hover:hover) and (pointer:fine){#bantv-home-v3 .bh-poster:hover{transform:translateY(-6px);box-shadow:0 25px 65px #0005}}\n@keyframes bh-service-travel{to{stroke-dashoffset:-100}}\n#bantv-home-v3.bh-paused .bh-service-flow,#bantv-home-v3.bh-video-open .bh-service-flow{animation-play-state:paused}\n@media(prefers-reduced-motion:reduce){#bantv-home-v3 .bh-service-flow{animation:none}#bantv-home-v3 .bh-scene-thread{display:none}}\n@media(max-width:600px){#bantv-home-v3 .bh-transfer-steps{gap:7px;font-size:9px}}\n\n<\/style>\n<div id=\"bantv-home-v3\" data-version=\"4.1\">\n <div class=\"bh-journey-stage\" aria-hidden=\"true\"><canvas class=\"bh-journey-canvas\"><\/canvas><div class=\"bh-vector-layer\" data-vector=\"0\"><svg class=\"bh-vector-orbit\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><defs><radialGradient id=\"j4-orb\"><stop stop-color=\"#9faf83\"\/><stop offset=\".22\" stop-color=\"#3c5e44\"\/><stop offset=\".7\" stop-color=\"#172b22\"\/><stop offset=\"1\" stop-color=\"#0a1812\"\/><\/radialGradient><linearGradient id=\"j4-ring\"><stop stop-color=\"#c8fb7e\"\/><stop offset=\".45\" stop-color=\"#567848\"\/><stop offset=\"1\" stop-color=\"#aac9ac\"\/><\/linearGradient><\/defs><circle cx=\"1045\" cy=\"480\" r=\"180\" fill=\"url(#j4-orb)\" stroke=\"#cadab32a\"\/><g fill=\"none\"><ellipse cx=\"1045\" cy=\"480\" rx=\"340\" ry=\"136\" stroke=\"url(#j4-ring)\" stroke-width=\"2\" transform=\"rotate(-28 1045 480)\"\/><ellipse cx=\"1045\" cy=\"480\" rx=\"300\" ry=\"235\" stroke=\"#92bca855\" transform=\"rotate(42 1045 480)\"\/><ellipse cx=\"1045\" cy=\"480\" rx=\"385\" ry=\"210\" stroke=\"#8aaa7833\" transform=\"rotate(68 1045 480)\"\/><circle cx=\"1045\" cy=\"480\" r=\"440\" stroke=\"#a0c68a12\"\/><\/g><g fill=\"#c8fb8a\"><circle cx=\"749\" cy=\"614\" r=\"6\"\/><circle cx=\"1340\" cy=\"350\" r=\"4\"\/><circle cx=\"1150\" cy=\"206\" r=\"5\"\/><\/g><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"1\"><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><defs><radialGradient id=\"j4-moon\"><stop stop-color=\"#a7b8c7\"\/><stop offset=\".65\" stop-color=\"#6b8191\"\/><stop offset=\"1\" stop-color=\"#253e50\"\/><\/radialGradient><\/defs><circle cx=\"1170\" cy=\"260\" r=\"210\" fill=\"url(#j4-moon)\"\/><circle cx=\"1170.0\" cy=\"420.0\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1271.3\" cy=\"239.4\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1020.6\" cy=\"105.3\" r=\"19\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1289.1\" cy=\"320.5\" r=\"26\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1143.9\" cy=\"399.1\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1089.5\" cy=\"163.7\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1314.8\" cy=\"145.7\" r=\"19\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1036.9\" cy=\"385.8\" r=\"26\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1221.5\" cy=\"341.9\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1227.2\" cy=\"113.1\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1034.2\" cy=\"216.0\" r=\"19\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1313.1\" cy=\"418.2\" r=\"26\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1094.7\" cy=\"263.3\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1137.9\" cy=\"100.9\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1292.7\" cy=\"297.7\" r=\"19\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1021.2\" cy=\"409.3\" r=\"26\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1266.7\" cy=\"183.8\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1176.1\" cy=\"130.3\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1064.3\" cy=\"369.6\" r=\"19\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1319.8\" cy=\"361.4\" r=\"26\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1054.8\" cy=\"124.2\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1190.1\" cy=\"193.5\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1255.6\" cy=\"412.9\" r=\"19\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1023.7\" cy=\"287.1\" r=\"26\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1300.2\" cy=\"100.1\" r=\"5\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"1124.3\" cy=\"274.1\" r=\"12\" fill=\"#2e495b\" opacity=\".25\"\/><circle cx=\"720.0\" cy=\"950.0\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"814.6\" cy=\"727.3\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"907.5\" cy=\"270.2\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"997.1\" cy=\"12.0\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1081.7\" cy=\"197.4\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1159.9\" cy=\"650.7\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1230.2\" cy=\"942.2\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1291.4\" cy=\"795.6\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1342.5\" cy=\"349.9\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1382.4\" cy=\"27.5\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1410.6\" cy=\"134.0\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1426.4\" cy=\"568.5\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1429.6\" cy=\"919.1\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1420.2\" cy=\"853.5\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1398.3\" cy=\"433.9\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1364.3\" cy=\"58.0\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1318.8\" cy=\"82.1\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1262.6\" cy=\"483.3\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1196.8\" cy=\"881.4\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1122.4\" cy=\"899.1\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1040.9\" cy=\"519.5\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"953.7\" cy=\"102.5\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"862.3\" cy=\"43.3\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"768.3\" cy=\"398.1\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"673.5\" cy=\"830.5\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"579.5\" cy=\"930.7\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"488.1\" cy=\"603.7\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"400.7\" cy=\"159.5\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"319.1\" cy=\"19.0\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"244.6\" cy=\"315.5\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"178.6\" cy=\"767.9\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"122.2\" cy=\"947.4\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"76.5\" cy=\"683.9\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"42.3\" cy=\"227.1\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"20.1\" cy=\"10.0\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"10.4\" cy=\"238.4\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"13.4\" cy=\"695.8\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"29.0\" cy=\"948.6\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"56.9\" cy=\"757.3\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"96.6\" cy=\"303.1\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"147.5\" cy=\"16.6\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"208.5\" cy=\"169.3\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"278.7\" cy=\"616.5\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"356.7\" cy=\"934.3\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"441.2\" cy=\"821.5\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"530.7\" cy=\"385.0\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"623.6\" cy=\"38.6\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"718.2\" cy=\"110.6\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"812.8\" cy=\"532.7\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"905.7\" cy=\"904.9\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"995.4\" cy=\"874.4\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1080.1\" cy=\"470.0\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1158.4\" cy=\"75.1\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1228.9\" cy=\"64.0\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1290.3\" cy=\"447.2\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1341.6\" cy=\"861.5\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1381.8\" cy=\"914.2\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1410.1\" cy=\"555.4\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1426.2\" cy=\"125.1\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1429.7\" cy=\"31.2\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1420.5\" cy=\"362.7\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1398.8\" cy=\"805.4\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1365.1\" cy=\"939.6\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1319.8\" cy=\"638.2\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1263.8\" cy=\"186.9\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1198.2\" cy=\"13.4\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1124.0\" cy=\"282.2\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"1042.6\" cy=\"738.5\" r=\"1.0\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"955.4\" cy=\"949.8\" r=\"1.5\" fill=\"#a4bed1\" opacity=\".6\"\/><circle cx=\"864.1\" cy=\"715.8\" r=\"0.5\" fill=\"#a4bed1\" opacity=\".6\"\/><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"2\"><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><defs><linearGradient id=\"j4-sky\" x2=\"0\" y2=\"1\"><stop stop-color=\"#416778\" stop-opacity=\".3\"\/><stop offset=\"1\" stop-color=\"#182a34\" stop-opacity=\"0\"\/><\/linearGradient><\/defs><ellipse cx=\"1080\" cy=\"630\" rx=\"630\" ry=\"330\" fill=\"url(#j4-sky)\"\/><g fill=\"none\" stroke=\"#709ba829\" stroke-width=\"1\"><path d=\"M-560 960 1000 420\"\/><path d=\"M-420 960 1000 420\"\/><path d=\"M-280 960 1000 420\"\/><path d=\"M-140 960 1000 420\"\/><path d=\"M0 960 1000 420\"\/><path d=\"M140 960 1000 420\"\/><path d=\"M280 960 1000 420\"\/><path d=\"M420 960 1000 420\"\/><path d=\"M560 960 1000 420\"\/><path d=\"M700 960 1000 420\"\/><path d=\"M840 960 1000 420\"\/><path d=\"M980 960 1000 420\"\/><path d=\"M1120 960 1000 420\"\/><path d=\"M1260 960 1000 420\"\/><path d=\"M1400 960 1000 420\"\/><path d=\"M1540 960 1000 420\"\/><path d=\"M1680 960 1000 420\"\/><path d=\"M1820 960 1000 420\"\/><path d=\"M1960 960 1000 420\"\/><path d=\"M2100 960 1000 420\"\/><path d=\"M2240 960 1000 420\"\/><path d=\"M2380 960 1000 420\"\/><path d=\"M0 520H1440\"\/><path d=\"M0 524H1440\"\/><path d=\"M0 536H1440\"\/><path d=\"M0 556H1440\"\/><path d=\"M0 584H1440\"\/><path d=\"M0 620H1440\"\/><path d=\"M0 664H1440\"\/><path d=\"M0 716H1440\"\/><path d=\"M0 776H1440\"\/><path d=\"M0 844H1440\"\/><path d=\"M0 920H1440\"\/><path d=\"M0 1004H1440\"\/><\/g><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"3\"><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><g fill=\"none\" stroke=\"#638b9a\" stroke-width=\"1.5\"><path class=\"bh-vector-route\" pathLength=\"100\" d=\"M-100 850 C380 620,430 110,900 320 S1330 720,1600 80\" opacity=\"0.7\"\/><path class=\"bh-vector-route\" pathLength=\"100\" d=\"M-100 874 C380 644,430 95,900 340 S1330 740,1600 135\" opacity=\"0.2\"\/><path class=\"bh-vector-route\" pathLength=\"100\" d=\"M-100 898 C380 668,430 80,900 360 S1330 760,1600 190\" opacity=\"0.2\"\/><path class=\"bh-vector-route\" pathLength=\"100\" d=\"M-100 922 C380 692,430 65,900 380 S1330 780,1600 245\" opacity=\"0.2\"\/><path class=\"bh-vector-route\" pathLength=\"100\" d=\"M-100 946 C380 716,430 50,900 400 S1330 800,1600 300\" opacity=\"0.2\"\/><path class=\"bh-vector-route\" pathLength=\"100\" d=\"M-100 970 C380 740,430 35,900 420 S1330 820,1600 355\" opacity=\"0.2\"\/><\/g><g fill=\"#a8d8eb\"><circle cx=\"920\" cy=\"330\" r=\"5\"\/><circle cx=\"450\" cy=\"510\" r=\"3\"\/><circle cx=\"1360\" cy=\"450\" r=\"4\"\/><\/g><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"4\"><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><g fill=\"none\" stroke=\"#5981aa22\"><path d=\"M-720 1000 -250 150\"\/><path d=\"M-600 1000 -150 150\"\/><path d=\"M-480 1000 -50 150\"\/><path d=\"M-360 1000 50 150\"\/><path d=\"M-240 1000 150 150\"\/><path d=\"M-120 1000 250 150\"\/><path d=\"M0 1000 350 150\"\/><path d=\"M120 1000 450 150\"\/><path d=\"M240 1000 550 150\"\/><path d=\"M360 1000 650 150\"\/><path d=\"M480 1000 750 150\"\/><path d=\"M600 1000 850 150\"\/><path d=\"M720 1000 950 150\"\/><path d=\"M840 1000 1050 150\"\/><path d=\"M960 1000 1150 150\"\/><path d=\"M1080 1000 1250 150\"\/><path d=\"M1200 1000 1350 150\"\/><path d=\"M1320 1000 1450 150\"\/><path d=\"M1440 1000 1550 150\"\/><path d=\"M1560 1000 1650 150\"\/><path d=\"M1680 1000 1750 150\"\/><path d=\"M1800 1000 1850 150\"\/><path d=\"M1920 1000 1950 150\"\/><path d=\"M0 260H1440\"\/><path d=\"M0 350H1440\"\/><path d=\"M0 440H1440\"\/><path d=\"M0 530H1440\"\/><path d=\"M0 620H1440\"\/><path d=\"M0 710H1440\"\/><path d=\"M0 800H1440\"\/><path d=\"M0 890H1440\"\/><path d=\"M0 980H1440\"\/><\/g><g fill=\"none\" stroke-width=\"2\"><path class=\"bh-vector-route\" d=\"M-100 720H500V540H900V270H1530\" stroke=\"#88bdf166\"\/><path class=\"bh-vector-route\" d=\"M1400 840H1050V650H750V360H600\" stroke=\"#db919244\"\/><\/g><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"5\"><div class=\"bh-vector-cube-space\"><div class=\"bh-vector-cube\"><i class=\"bh-face-0\"><\/i><i class=\"bh-face-1\"><\/i><i class=\"bh-face-2\"><\/i><i class=\"bh-face-3\"><\/i><i class=\"bh-face-4\"><\/i><i class=\"bh-face-5\"><\/i><\/div><\/div><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><g fill=\"none\" stroke=\"#7798aa30\"><ellipse cx=\"1040\" cy=\"460\" rx=\"350\" ry=\"120\" transform=\"rotate(-22 1040 460)\"\/><ellipse cx=\"1040\" cy=\"460\" rx=\"280\" ry=\"210\" transform=\"rotate(50 1040 460)\"\/><\/g><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"6\"><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><defs><linearGradient id=\"j4-mist\" x2=\"0\" y2=\"1\"><stop stop-color=\"#7ba397\" stop-opacity=\"0\"\/><stop offset=\".6\" stop-color=\"#8aaca0\" stop-opacity=\".15\"\/><stop offset=\"1\" stop-color=\"#07120f\" stop-opacity=\"0\"\/><\/linearGradient><radialGradient id=\"j4-window\"><stop stop-color=\"#d3aa69\" stop-opacity=\".25\"\/><stop offset=\"1\" stop-color=\"#cbb07e\" stop-opacity=\"0\"\/><\/radialGradient><\/defs><g fill=\"#294238\" opacity=\"0.4\"><path d=\"M-120 620 L-143 654 L-132 644 L-154 687 L-138 677 L-165 721 L-143 711 L-176 754 L-149 744 L-187 788 L-155 778 L-198 822 L-161 812 L-127 830 L-127 970 L-113 970 L-113 830 L-79 812 L-42 822 L-85 778 L-53 788 L-91 744 L-64 754 L-97 711 L-75 721 L-102 677 L-86 687 L-108 644 L-97 654Z\"\/><path d=\"M-120 715V960 M-120 777l-35 -28 M-120 805l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M55 375 L32 438 L43 428 L21 501 L37 491 L10 564 L31 554 L-1 627 L25 617 L-12 690 L20 680 L-23 753 L14 743 L48 769 L48 970 L62 970 L62 769 L95 743 L133 753 L89 680 L122 690 L84 617 L111 627 L78 554 L100 564 L72 491 L89 501 L66 428 L78 438Z\"\/><path d=\"M55 554V960 M55 669l-35 -28 M55 722l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M127 246 L104 324 L115 314 L93 403 L109 393 L82 481 L104 471 L71 560 L98 550 L60 638 L92 628 L49 717 L86 707 L120 736 L120 970 L134 970 L134 736 L168 707 L205 717 L162 628 L194 638 L156 550 L183 560 L150 471 L172 481 L145 393 L161 403 L139 314 L150 324Z\"\/><path d=\"M127 468V960 M127 612l-35 -28 M127 678l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M229 291 L206 364 L217 354 L195 438 L212 428 L184 511 L206 501 L173 584 L200 574 L162 657 L194 647 L151 730 L189 720 L222 748 L222 970 L236 970 L236 748 L270 720 L307 730 L264 647 L296 657 L258 574 L285 584 L253 501 L274 511 L247 428 L263 438 L241 354 L252 364Z\"\/><path d=\"M229 498V960 M229 632l-35 -28 M229 693l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M425 491 L402 540 L413 530 L391 589 L407 579 L380 639 L401 629 L369 688 L396 678 L358 737 L390 727 L347 786 L384 776 L418 798 L418 970 L432 970 L432 798 L465 776 L503 786 L460 727 L492 737 L454 678 L481 688 L448 629 L470 639 L442 579 L459 589 L437 530 L448 540Z\"\/><path d=\"M425 630V960 M425 720l-35 -28 M425 761l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M564 488 L541 538 L552 528 L530 587 L546 577 L519 637 L540 627 L508 686 L534 676 L497 735 L529 725 L486 785 L523 775 L557 797 L557 970 L571 970 L571 797 L604 775 L642 785 L598 725 L631 735 L593 676 L620 686 L587 627 L609 637 L581 577 L598 587 L575 528 L587 538Z\"\/><path d=\"M564 628V960 M564 719l-35 -28 M564 760l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M625 290 L602 363 L613 353 L591 436 L608 426 L580 509 L602 499 L569 583 L596 573 L558 656 L591 646 L547 729 L585 719 L618 747 L618 970 L632 970 L632 747 L666 719 L703 729 L660 646 L692 656 L655 573 L681 583 L649 499 L670 509 L643 426 L659 436 L637 353 L648 363Z\"\/><path d=\"M625 497V960 M625 632l-35 -28 M625 693l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M767 246 L744 325 L755 315 L733 403 L749 393 L722 482 L743 472 L711 560 L737 550 L700 638 L732 628 L689 717 L726 707 L760 737 L760 970 L774 970 L774 737 L807 707 L845 717 L801 628 L834 638 L796 550 L823 560 L790 472 L812 482 L784 393 L801 403 L778 315 L790 325Z\"\/><path d=\"M767 469V960 M767 612l-35 -28 M767 678l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M961 378 L938 441 L949 431 L927 503 L944 493 L916 566 L938 556 L905 629 L932 619 L894 691 L927 681 L883 754 L921 744 L954 770 L954 970 L968 970 L968 770 L1002 744 L1039 754 L996 681 L1028 691 L991 619 L1017 629 L985 556 L1006 566 L979 493 L995 503 L973 431 L984 441Z\"\/><path d=\"M961 556V960 M961 670l-35 -28 M961 723l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1061 617 L1038 651 L1049 641 L1027 685 L1044 675 L1016 719 L1038 709 L1005 753 L1032 743 L994 787 L1027 777 L983 821 L1021 811 L1054 829 L1054 970 L1068 970 L1068 829 L1102 811 L1139 821 L1096 777 L1128 787 L1091 743 L1117 753 L1085 709 L1106 719 L1079 675 L1095 685 L1073 641 L1084 651Z\"\/><path d=\"M1061 713V960 M1061 775l-35 -28 M1061 804l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1135 373 L1112 436 L1123 426 L1101 499 L1118 489 L1090 563 L1112 553 L1079 626 L1106 616 L1068 689 L1100 679 L1057 752 L1095 742 L1128 768 L1128 970 L1142 970 L1142 768 L1176 742 L1213 752 L1170 679 L1202 689 L1164 616 L1191 626 L1159 553 L1180 563 L1153 489 L1169 499 L1147 426 L1158 436Z\"\/><path d=\"M1135 552V960 M1135 668l-35 -28 M1135 721l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1312 245 L1289 324 L1300 314 L1278 402 L1294 392 L1267 481 L1288 471 L1256 559 L1282 549 L1245 638 L1277 628 L1234 717 L1271 707 L1305 736 L1305 970 L1319 970 L1319 736 L1352 707 L1390 717 L1346 628 L1379 638 L1341 549 L1368 559 L1335 471 L1357 481 L1329 392 L1346 402 L1324 314 L1335 324Z\"\/><path d=\"M1312 468V960 M1312 612l-35 -28 M1312 677l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1484 293 L1461 366 L1472 356 L1450 439 L1467 429 L1439 512 L1461 502 L1428 584 L1455 574 L1417 657 L1449 647 L1406 730 L1444 720 L1477 748 L1477 970 L1491 970 L1491 748 L1525 720 L1562 730 L1519 647 L1551 657 L1513 574 L1540 584 L1508 502 L1529 512 L1502 429 L1518 439 L1496 356 L1507 366Z\"\/><path d=\"M1484 499V960 M1484 633l-35 -28 M1484 694l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1556 495 L1533 543 L1544 533 L1522 592 L1538 582 L1511 641 L1532 631 L1500 689 L1526 679 L1489 738 L1521 728 L1478 786 L1515 776 L1549 799 L1549 970 L1563 970 L1563 799 L1596 776 L1634 786 L1590 728 L1623 738 L1585 679 L1612 689 L1579 631 L1601 641 L1573 582 L1590 592 L1567 533 L1579 543Z\"\/><path d=\"M1556 632V960 M1556 722l-35 -28 M1556 762l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><\/g><g fill=\"#17362a\" opacity=\"0.6\"><path d=\"M-82 240 L-105 319 L-94 309 L-116 399 L-100 389 L-127 478 L-106 468 L-138 557 L-111 547 L-149 636 L-117 626 L-160 715 L-123 705 L-89 735 L-89 970 L-75 970 L-75 735 L-42 705 L-4 715 L-47 626 L-15 636 L-53 547 L-26 557 L-59 468 L-37 478 L-64 389 L-48 399 L-70 309 L-59 319Z\"\/><path d=\"M-82 465V960 M-82 610l-35 -28 M-82 676l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M29 447 L6 502 L17 492 L-5 556 L11 546 L-16 610 L5 600 L-27 665 L-1 655 L-38 719 L-6 709 L-49 773 L-12 763 L22 787 L22 970 L36 970 L36 787 L69 763 L107 773 L63 709 L96 719 L58 655 L85 665 L52 600 L74 610 L46 546 L63 556 L41 492 L52 502Z\"\/><path d=\"M29 601V960 M29 701l-35 -28 M29 746l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M97 413 L74 471 L85 461 L63 530 L79 520 L52 588 L73 578 L41 647 L68 637 L30 705 L62 695 L19 764 L56 754 L90 778 L90 970 L104 970 L104 778 L137 754 L175 764 L132 695 L164 705 L126 637 L153 647 L120 578 L142 588 L114 520 L131 530 L109 461 L120 471Z\"\/><path d=\"M97 578V960 M97 686l-35 -28 M97 734l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M264 222 L241 303 L252 293 L230 385 L246 375 L219 466 L241 456 L208 547 L235 537 L197 629 L229 619 L186 710 L223 700 L257 730 L257 970 L271 970 L271 730 L305 700 L342 710 L299 619 L331 629 L293 537 L320 547 L287 456 L309 466 L282 375 L298 385 L276 293 L287 303Z\"\/><path d=\"M264 452V960 M264 602l-35 -28 M264 669l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M445 190 L422 275 L433 265 L411 360 L427 350 L400 445 L422 435 L389 531 L416 521 L378 616 L410 606 L367 701 L404 691 L438 722 L438 970 L452 970 L452 722 L486 691 L523 701 L480 606 L512 616 L474 521 L501 531 L468 435 L490 445 L463 350 L479 360 L457 265 L468 275Z\"\/><path d=\"M445 431V960 M445 587l-35 -28 M445 658l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M523 331 L500 399 L511 389 L489 468 L505 458 L478 536 L499 526 L467 604 L494 594 L456 672 L488 662 L445 741 L482 731 L516 758 L516 970 L530 970 L530 758 L563 731 L601 741 L558 662 L590 672 L552 594 L579 604 L546 526 L568 536 L541 458 L557 468 L535 389 L546 399Z\"\/><path d=\"M523 525V960 M523 650l-35 -28 M523 707l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M617 540 L594 583 L605 573 L583 626 L599 616 L572 669 L594 659 L561 713 L588 703 L550 756 L582 746 L539 799 L577 789 L610 810 L610 970 L624 970 L624 810 L658 789 L695 799 L652 746 L684 756 L646 703 L673 713 L640 659 L662 669 L635 616 L651 626 L629 573 L640 583Z\"\/><path d=\"M617 662V960 M617 742l-35 -28 M617 778l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M810 300 L787 372 L798 362 L776 444 L792 434 L765 516 L786 506 L754 588 L781 578 L743 660 L775 650 L732 732 L769 722 L803 750 L803 970 L817 970 L817 750 L850 722 L888 732 L844 650 L877 660 L839 578 L866 588 L833 506 L855 516 L827 434 L844 444 L822 362 L833 372Z\"\/><path d=\"M810 504V960 M810 636l-35 -28 M810 696l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M957 183 L934 269 L945 259 L923 355 L940 345 L912 441 L934 431 L901 527 L928 517 L890 613 L922 603 L879 699 L917 689 L950 721 L950 970 L964 970 L964 721 L998 689 L1035 699 L992 603 L1024 613 L986 517 L1013 527 L981 431 L1002 441 L975 345 L991 355 L969 259 L980 269Z\"\/><path d=\"M957 427V960 M957 584l-35 -28 M957 656l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1020 242 L997 321 L1008 311 L986 400 L1002 390 L975 479 L996 469 L964 558 L990 548 L953 637 L985 627 L942 716 L979 706 L1013 736 L1013 970 L1027 970 L1027 736 L1060 706 L1098 716 L1054 627 L1087 637 L1049 548 L1076 558 L1043 469 L1065 479 L1037 390 L1054 400 L1032 311 L1043 321Z\"\/><path d=\"M1020 466V960 M1020 611l-35 -28 M1020 676l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1152 451 L1129 505 L1140 495 L1118 558 L1134 548 L1107 612 L1128 602 L1096 666 L1123 656 L1085 720 L1117 710 L1074 774 L1111 764 L1145 788 L1145 970 L1159 970 L1159 788 L1192 764 L1230 774 L1186 710 L1219 720 L1181 656 L1208 666 L1175 602 L1197 612 L1169 548 L1186 558 L1164 495 L1175 505Z\"\/><path d=\"M1152 603V960 M1152 702l-35 -28 M1152 747l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1349 410 L1326 468 L1337 458 L1315 527 L1331 517 L1304 586 L1325 576 L1293 645 L1320 635 L1282 704 L1314 694 L1271 763 L1308 753 L1342 777 L1342 970 L1356 970 L1356 777 L1389 753 L1427 763 L1384 694 L1416 704 L1378 635 L1405 645 L1372 576 L1394 586 L1366 517 L1383 527 L1361 458 L1372 468Z\"\/><path d=\"M1349 576V960 M1349 684l-35 -28 M1349 733l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1457 220 L1434 302 L1445 292 L1423 383 L1439 373 L1412 465 L1434 455 L1401 547 L1428 537 L1390 628 L1422 618 L1379 710 L1417 700 L1450 730 L1450 970 L1464 970 L1464 730 L1498 700 L1535 710 L1492 618 L1524 628 L1486 537 L1513 547 L1480 455 L1502 465 L1475 373 L1491 383 L1469 292 L1480 302Z\"\/><path d=\"M1457 451V960 M1457 601l-35 -28 M1457 669l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1526 190 L1503 276 L1514 266 L1492 361 L1509 351 L1481 446 L1503 436 L1470 531 L1497 521 L1459 616 L1491 606 L1448 701 L1486 691 L1519 723 L1519 970 L1533 970 L1533 723 L1567 691 L1604 701 L1561 606 L1593 616 L1555 521 L1582 531 L1550 436 L1571 446 L1544 351 L1560 361 L1538 266 L1549 276Z\"\/><path d=\"M1526 432V960 M1526 588l-35 -28 M1526 659l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><\/g><g fill=\"#091d16\" opacity=\"0.95\"><path d=\"M-79 154 L-102 244 L-91 234 L-113 333 L-97 323 L-124 423 L-102 413 L-135 512 L-108 502 L-146 602 L-114 592 L-157 691 L-120 681 L-86 714 L-86 970 L-72 970 L-72 714 L-39 681 L-1 691 L-44 592 L-12 602 L-50 502 L-23 512 L-56 413 L-34 423 L-61 323 L-45 333 L-67 234 L-56 244Z\"\/><path d=\"M-79 408V960 M-79 572l-35 -28 M-79 647l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M-14 134 L-37 226 L-26 216 L-48 318 L-32 308 L-59 410 L-38 400 L-70 502 L-44 492 L-81 594 L-49 584 L-92 685 L-55 675 L-21 708 L-21 970 L-7 970 L-7 708 L26 675 L64 685 L20 584 L53 594 L15 492 L42 502 L9 400 L31 410 L3 308 L20 318 L-3 216 L9 226Z\"\/><path d=\"M-14 394V960 M-14 563l-35 -28 M-14 639l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M106 285 L83 359 L94 349 L72 433 L89 423 L61 506 L83 496 L50 580 L77 570 L39 654 L71 644 L28 728 L66 718 L99 746 L99 970 L113 970 L113 746 L147 718 L184 728 L141 644 L173 654 L135 570 L162 580 L130 496 L151 506 L124 423 L140 433 L118 349 L129 359Z\"\/><path d=\"M106 494V960 M106 629l-35 -28 M106 691l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1350 288 L1327 361 L1338 351 L1316 435 L1333 425 L1305 508 L1327 498 L1294 582 L1321 572 L1283 655 L1315 645 L1272 729 L1310 719 L1343 747 L1343 970 L1357 970 L1357 747 L1391 719 L1428 729 L1385 645 L1417 655 L1379 572 L1406 582 L1374 498 L1395 508 L1368 425 L1384 435 L1362 351 L1373 361Z\"\/><path d=\"M1350 496V960 M1350 631l-35 -28 M1350 692l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1414 460 L1391 513 L1402 503 L1380 565 L1397 555 L1369 618 L1391 608 L1358 671 L1385 661 L1347 724 L1379 714 L1336 777 L1374 767 L1407 790 L1407 970 L1421 970 L1421 790 L1455 767 L1492 777 L1449 714 L1481 724 L1443 661 L1470 671 L1438 608 L1459 618 L1432 555 L1448 565 L1426 503 L1437 513Z\"\/><path d=\"M1414 609V960 M1414 706l-35 -28 M1414 750l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><path d=\"M1537 226 L1514 307 L1525 297 L1503 388 L1520 378 L1492 469 L1514 459 L1481 550 L1508 540 L1470 630 L1502 620 L1459 711 L1497 701 L1530 732 L1530 970 L1544 970 L1544 732 L1578 701 L1615 711 L1572 620 L1604 630 L1566 540 L1593 550 L1561 459 L1582 469 L1555 378 L1571 388 L1549 297 L1560 307Z\"\/><path d=\"M1537 455V960 M1537 603l-35 -28 M1537 671l41 -31\" fill=\"none\" stroke=\"#7b8f73\" stroke-opacity=\".12\" stroke-width=\"2\"\/><\/g><g transform=\"translate(985 660)\"><path d=\"M-150 10 0-65 150 10V145H-150Z\" fill=\"#20372b\"\/><path d=\"M-165 15 0-78 165 15 145 28 0-50-145 28Z\" fill=\"#0b2019\"\/><path d=\"M-145 38H145M-145 59H145M-145 80H145M-145 101H145M-145 122H145\" stroke=\"#78917a\" stroke-opacity=\".2\"\/><path d=\"M-88 44h49v55h-49z\" fill=\"#b69a60\"\/><path d=\"M-65 44v55M-88 70h49\" stroke=\"#193325\" stroke-width=\"4\"\/><path d=\"M28 39H79V145H28Z\" fill=\"#0c2319\"\/><ellipse cx=\"-65\" cy=\"70\" rx=\"120\" ry=\"130\" fill=\"url(#j4-window)\"\/><\/g><rect class=\"bh-vector-mist\" x=\"-100\" y=\"320\" width=\"1700\" height=\"650\" fill=\"url(#j4-mist)\"\/><g fill=\"none\" stroke=\"#728169\" stroke-opacity=\".27\"><path d=\"M825 692 985 610 1148 692M836 700 985 625 1135 700\"\/><path d=\"M1008 700h60v105h-60zM1018 710h40v85h-40z\"\/><path d=\"M858 710h64v59h-64zM850 777h79\"\/><\/g><g fill=\"#58664c\"><rect x=\"1150\" y=\"743\" width=\"5\" height=\"96\"\/><rect x=\"1200\" y=\"740\" width=\"5\" height=\"105\"\/><path d=\"M1140 770h78v5h-78zM1140 797h78v5h-78z\"\/><\/g><ellipse cx=\"936\" cy=\"860\" rx=\"165\" ry=\"15\" fill=\"#c3a264\" opacity=\".035\"\/><path d=\"M0 950Q310 850 700 860T1440 895V960H0Z\" fill=\"#081910\"\/><path d=\"M1010 800H1070V811H1080V822H1090V834H1100\" fill=\"none\" stroke=\"#5b6c55\" stroke-width=\"8\"\/><\/svg><\/div><div class=\"bh-vector-layer\" data-vector=\"7\"><svg class=\"\" viewBox=\"0 0 1440 960\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><defs><radialGradient id=\"j4-orb-end\"><stop stop-color=\"#9faf83\"\/><stop offset=\".22\" stop-color=\"#3c5e44\"\/><stop offset=\".7\" stop-color=\"#172b22\"\/><stop offset=\"1\" stop-color=\"#0a1812\"\/><\/radialGradient><linearGradient id=\"j4-ring-end\"><stop stop-color=\"#c8fb7e\"\/><stop offset=\".45\" stop-color=\"#567848\"\/><stop offset=\"1\" stop-color=\"#aac9ac\"\/><\/linearGradient><\/defs><circle cx=\"1045\" cy=\"480\" r=\"180\" fill=\"url(#j4-orb-end)\" stroke=\"#cadab32a\"\/><g fill=\"none\"><ellipse cx=\"1045\" cy=\"480\" rx=\"340\" ry=\"136\" stroke=\"url(#j4-ring-end)\" stroke-width=\"2\" transform=\"rotate(-28 1045 480)\"\/><ellipse cx=\"1045\" cy=\"480\" rx=\"300\" ry=\"235\" stroke=\"#92bca855\" transform=\"rotate(42 1045 480)\"\/><ellipse cx=\"1045\" cy=\"480\" rx=\"385\" ry=\"210\" stroke=\"#8aaa7833\" transform=\"rotate(68 1045 480)\"\/><circle cx=\"1045\" cy=\"480\" r=\"440\" stroke=\"#a0c68a12\"\/><\/g><g fill=\"#c8fb8a\"><circle cx=\"749\" cy=\"614\" r=\"6\"\/><circle cx=\"1340\" cy=\"350\" r=\"4\"\/><circle cx=\"1150\" cy=\"206\" r=\"5\"\/><\/g><\/svg><\/div><div class=\"bh-scene-thread\" aria-hidden=\"true\"><svg viewBox=\"0 0 1440 960\" preserveAspectRatio=\"none\"><path pathLength=\"100\" d=\"M1500 160 C1050 60 720 240 1080 480 S1250 830 700 1040\"\/><\/svg><\/div><div class=\"bh-journey-shade\"><\/div><\/div>\n <nav class=\"bh-journey-rail\" aria-label=\"\u0413\u043b\u0430\u0432\u044b \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f\" hidden><span class=\"bh-journey-current\">01 \/ \u041d\u0430\u0447\u0430\u043b\u043e<\/span><div class=\"bh-journey-dots\">\n<a href=\"#bh-hero-title\" aria-label=\"\u041d\u0430\u0447\u0430\u043b\u043e\" title=\"\u041d\u0430\u0447\u0430\u043b\u043e\"><\/a><a href=\"#bh-releases\" aria-label=\"\u0412 \u043a\u0430\u0434\u0440\u0435\" title=\"\u0412 \u043a\u0430\u0434\u0440\u0435\"><\/a><a href=\"#bh-world\" aria-label=\"World RP\" title=\"World RP\"><\/a><a href=\"#bh-drop\" aria-label=\"Drop\" title=\"Drop\"><\/a><a href=\"#bh-signal\" aria-label=\"SignalRP\" title=\"SignalRP\"><\/a><a href=\"#bh-academy\" aria-label=\"Academy\" title=\"Academy\"><\/a><a href=\"#bh-spark\" aria-label=\"\u0422\u0435\u043d\u0438 \u0418\u0441\u043a\u0440\u044b\" title=\"\u0422\u0435\u043d\u0438 \u0418\u0441\u043a\u0440\u044b\"><\/a><a href=\"#bh-together\" aria-label=\"\u0412\u043c\u0435\u0441\u0442\u0435\" title=\"\u0412\u043c\u0435\u0441\u0442\u0435\"><\/a><\/div><span class=\"bh-journey-hint\">\u041b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u2014 \u043c\u0438\u0440 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/span><\/nav>\n\n <div class=\"bh-progress-line\" aria-hidden=\"true\"><\/div>\n <div class=\"bh-intro\" aria-label=\"\u0417\u0430\u0441\u0442\u0430\u0432\u043a\u0430 BanTV Production\" aria-hidden=\"true\">\n  <div class=\"bh-intro-art\" aria-hidden=\"true\"><div class=\"bh-intro-frame\"><\/div><div class=\"bh-intro-word\">Ban<em>TV<\/em><\/div><span class=\"bh-intro-label\">IDEAS BECOME REAL<\/span><\/div>\n  <button type=\"button\" class=\"bh-intro-skip\" tabindex=\"-1\">\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0443 \u2197<\/button>\n <\/div>\n <div class=\"bh-wrap bh-topline\"><span>BanTV Production \u00b7 \u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/span><button type=\"button\" class=\"bh-motion\" aria-pressed=\"false\" hidden><i aria-hidden=\"true\"><\/i><span>\u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e<\/span><\/button><\/div>\n <section class=\"bh-hero\" aria-labelledby=\"bh-hero-title\">\n  <div class=\"bh-wrap\">\n   <div class=\"bh-hero-grid\">\n    <div class=\"bh-hero-copy\">\n     <p class=\"bh-kicker\" data-reveal>\u0421\u043d\u0438\u043c\u0430\u0435\u043c. \u0421\u043e\u0437\u0434\u0430\u0451\u043c. \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c.<\/p>\n     <h1 id=\"bh-hero-title\" data-reveal>\u0418\u0434\u0435\u0438 \u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 <span class=\"bh-accent\">\u0441\u0432\u043e\u0439 \u043c\u0438\u0440.<\/span><\/h1>\n     <p data-reveal>\u041e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0434\u043e \u0446\u0435\u043b\u043e\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439. \u041c\u044b \u2014 BanTV Production. \u0414\u0435\u043b\u0430\u0435\u043c \u0448\u043e\u0443, \u0444\u0438\u043b\u044c\u043c\u044b, \u0438\u0433\u0440\u044b \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435.<\/p>\n     <div class=\"bh-actions\" data-reveal><a class=\"bh-btn bh-btn-primary\" href=\"#bh-releases\">\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435 <span class=\"bh-arrow\" aria-hidden=\"true\">\u2198<\/span><\/a><a class=\"bh-btn\" href=\"https:\/\/bantv.ru\/?page_id=119\">\u041d\u0430\u0448\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 <span class=\"bh-arrow\" aria-hidden=\"true\">\u2197<\/span><\/a><\/div>\n     <p class=\"bh-hero-note\" data-reveal>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c, \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435.<\/p><p class=\"bh-journey-note\">\u041b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0432\u043d\u0438\u0437. \u041e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u2014 \u043a \u0446\u0435\u043b\u043e\u043c\u0443 \u043c\u0438\u0440\u0443.<\/p>\n    <\/div>\n    <div class=\"bh-cinema\" data-reveal>\n     <div class=\"bh-cinema-top\"><b>BanTV \/ Production<\/b><span>\u0412\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u2192 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/span><\/div>\n     <div class=\"bh-brand-art\" aria-hidden=\"true\"><div class=\"bh-orbit\"><\/div><div class=\"bh-orbit bh-orbit-two\"><\/div><div class=\"bh-brand-word\">Ban<em>TV<\/em><\/div><div class=\"bh-brand-sub\">PRODUCTION<\/div><\/div>\n     <div class=\"bh-cinema-bottom\"><span>\u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e<br>\u0441 \u00ab\u041d\u0443 \u0447\u0438\u0441\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u00bb<\/span><a class=\"bh-play-round\" href=\"https:\/\/vkvideo.ru\/video-220276241_456239058\" data-video=\"moon\" aria-label=\"\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u044b\u043f\u0443\u0441\u043a: \u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u041b\u0443\u043d\u0430 \u0443\u043b\u0435\u0442\u0438\u0442 \u043e\u0442 \u043d\u0430\u0441?\">\u25b6<\/a><\/div>\n    <\/div>\n   <\/div>\n   <div class=\"bh-index\"><span>\u041e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u0426\u0435\u043b\u0430\u044f \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u0434\u0435\u0439.<\/span><a href=\"#bh-releases\">01 \/ \u0421\u043c\u043e\u0442\u0440\u0438\u043c <span aria-hidden=\"true\">\u2193<\/span><\/a><a href=\"#bh-projects\">02 \/ \u0418\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c <span aria-hidden=\"true\">\u2193<\/span><\/a><a href=\"#bh-together\">03 \/ \u0414\u0435\u043b\u0430\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435 <span aria-hidden=\"true\">\u2193<\/span><\/a><\/div>\n   <noscript><p class=\"bh-nojs\">\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0441 JavaScript. \u0412\u0441\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.<\/p><\/noscript>\n  <\/div>\n <\/section>\n <section class=\"bh-section\" id=\"bh-releases\" aria-labelledby=\"bh-releases-title\">\n  <div class=\"bh-wrap\">\n   <div class=\"bh-heading-row\"><div><p class=\"bh-kicker\" data-reveal>\u0412 \u043a\u0430\u0434\u0440\u0435 \u2014 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u0441\u0442\u0432\u043e<\/p><h2 id=\"bh-releases-title\" data-reveal>\u0415\u0441\u0442\u044c \u0447\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/h2><p class=\"bh-section-lead\" data-reveal>\u0411\u043e\u043b\u044c\u0448\u0438\u0435 \u00ab\u0430 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438\u00bb, \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0435 \u043a\u0438\u043d\u043e. \u0412\u044b\u043f\u0443\u0441\u043a\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043d\u0430\u043c\u0438.<\/p><\/div><a class=\"bh-text-link\" href=\"https:\/\/bantv.ru\/?page_id=119\">\u0412\u0441\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 <span aria-hidden=\"true\">\u2197<\/span><\/a><\/div>\n   <div class=\"bh-film-grid\">\n    <article class=\"bh-film\" data-reveal><a class=\"bh-film-button\" href=\"https:\/\/vkvideo.ru\/video-220276241_456239058\" data-video=\"moon\"><div class=\"bh-film-art bh-moon-art\" aria-hidden=\"true\"><div class=\"bh-moon\"><\/div><div class=\"bh-earth-line\"><\/div><div class=\"bh-art-type\"><small>\u041d\u0443 \u0447\u0438\u0441\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/small>\u0410 \u0435\u0441\u043b\u0438 \u041b\u0443\u043d\u0430<br>\u0443\u043b\u0435\u0442\u0438\u0442?<\/div><span class=\"bh-play-round\">\u25b6<\/span><\/div><div class=\"bh-film-text\"><span class=\"bh-film-meta\">\u0428\u043e\u0443 \/ 2026<\/span><h3>\u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u041b\u0443\u043d\u0430 \u0443\u043b\u0435\u0442\u0438\u0442 \u043e\u0442 \u043d\u0430\u0441?<\/h3><p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0441 \u0417\u0435\u043c\u043b\u0451\u0439 \u0438 \u0432\u0441\u0435\u043c\u0438 \u043d\u0430\u043c\u0438? \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u00ab\u041d\u0443 \u0447\u0438\u0441\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u00bb.<\/p><\/div><\/a><\/article>\n    <article class=\"bh-film\" data-reveal><a class=\"bh-film-button\" href=\"https:\/\/vkvideo.ru\/video-220276241_456239033\" data-video=\"horizons\"><div class=\"bh-film-art bh-landscape\" aria-hidden=\"true\"><div class=\"bh-art-type\"><small>\u0422\u0430\u0438\u043b\u0430\u043d\u0434 \/ \u0432\u044b\u043f\u0443\u0441\u043a 3<\/small>\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u044b \u043c\u0438\u0440\u0430<\/div><span class=\"bh-play-round\">\u25b6<\/span><\/div><div class=\"bh-film-text\"><span class=\"bh-film-meta\">\u041f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f \/ 2025<\/span><h3>\u00ab\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u044b \u043c\u0438\u0440\u0430\u00bb \u2014 \u0432\u044b\u043f\u0443\u0441\u043a 3<\/h3><p>\u0421\u0435\u0432\u0435\u0440 \u0422\u0430\u0438\u043b\u0430\u043d\u0434\u0430: \u0440\u0430\u0441\u0441\u0432\u0435\u0442\u044b \u043d\u0430\u0434 \u043e\u0431\u043b\u0430\u043a\u0430\u043c\u0438, \u0433\u043e\u0440\u044b \u0438 \u0442\u0438\u0445\u0438\u0435 \u0434\u043e\u043b\u0438\u043d\u044b.<\/p><\/div><\/a><\/article>\n    <article class=\"bh-film\" data-reveal><a class=\"bh-film-button\" href=\"https:\/\/vk.com\/video-220276241_456239023\" data-video=\"radium\"><div class=\"bh-film-art bh-radium\" aria-hidden=\"true\"><div class=\"bh-art-type\"><small>\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0435 \u043a\u0438\u043d\u043e<\/small>\u0420\u0430\u0434\u0438\u0439 325<\/div><span class=\"bh-play-round\">\u25b6<\/span><\/div><div class=\"bh-film-text\"><span class=\"bh-film-meta\">\u0424\u0438\u043b\u044c\u043c \/ 2025<\/span><h3>\u00ab\u0420\u0430\u0434\u0438\u0439 325\u00bb<\/h3><p>\u0414\u0435\u0442\u0435\u043a\u0442\u0438\u0432 \u0438 \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u043a\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p><\/div><\/a><\/article>\n    <article class=\"bh-film bh-film-engine\" data-reveal><a class=\"bh-film-button\" href=\"https:\/\/vkvideo.ru\/video-220276241_456239032\" data-video=\"engine\"><div class=\"bh-film-art bh-engine-art\" aria-hidden=\"true\"><svg class=\"bh-car-art\" viewBox=\"0 0 600 240\" focusable=\"false\"><defs><linearGradient id=\"bh-car-metal\" x2=\"0\" y2=\"1\"><stop stop-color=\"#c6d2d9\"\/><stop offset=\".48\" stop-color=\"#75858f\"\/><stop offset=\"1\" stop-color=\"#283a44\"\/><\/linearGradient><\/defs><ellipse cx=\"310\" cy=\"207\" rx=\"233\" ry=\"14\" fill=\"#000\" opacity=\".3\"\/><path d=\"M59 155 84 130 160 117 213 64Q226 52 253 52H383Q409 52 430 79L474 122 535 140Q551 144 555 163L548 189H64Z\" fill=\"url(#bh-car-metal)\" stroke=\"#b4c8d0\" stroke-width=\"2\"\/><path d=\"M172 117 221 68H280V117ZM291 68H380Q394 68 410 86L443 117H291Z\" fill=\"#172c37\" stroke=\"#89a4b2\"\/><path d=\"M181 128H464M285 125V180M419 123 434 177\" fill=\"none\" stroke=\"#a9bac2\" opacity=\".55\"\/><path d=\"M79 148H140M476 143 531 153\" stroke=\"#dbf6ed\" stroke-width=\"5\" stroke-linecap=\"round\"\/><path d=\"M306 140H328M444 141H463\" stroke=\"#d9e4e8\" stroke-width=\"3\" stroke-linecap=\"round\"\/><g fill=\"#10191e\" stroke=\"#53656e\" stroke-width=\"3\"><circle cx=\"163\" cy=\"184\" r=\"33\"\/><circle cx=\"466\" cy=\"184\" r=\"33\"\/><\/g><g fill=\"#7b919f\" stroke=\"#c1d0d8\" stroke-width=\"2\"><circle cx=\"163\" cy=\"184\" r=\"19\"\/><circle cx=\"466\" cy=\"184\" r=\"19\"\/><\/g><path d=\"M83 194H123M204 195H424M506 194H539\" stroke=\"#17262e\" stroke-width=\"8\"\/><\/svg><span class=\"bh-engine-label\">LI L9 ULTRA<\/span><span class=\"bh-play-round\">\u25b6<\/span><\/div><div class=\"bh-film-text\"><span class=\"bh-film-meta\">Engine &amp; Gear \/ \u041e\u0431\u0437\u043e\u0440 \/ 2025<\/span><h3>Li L9 Ultra \u2014 \u0447\u0430\u0441\u0442\u044c 1<\/h3><p>\u0417\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u043c, \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438.<\/p><span class=\"bh-text-link\" aria-hidden=\"true\">\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u044b\u043f\u0443\u0441\u043a \u2197<\/span><\/div><\/a><\/article>\n   <\/div>\n   <p class=\"bh-video-note\">\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u043b\u043e\u0436\u043a\u0438. \u041f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0432 \u043f\u043b\u0435\u0435\u0440\u0435 VK \u0412\u0438\u0434\u0435\u043e.<\/p>\n  <\/div>\n <\/section>\n <section class=\"bh-section bh-project-intro\" id=\"bh-projects\" aria-labelledby=\"bh-projects-title\"><div class=\"bh-wrap\"><p class=\"bh-kicker\" data-reveal>\u0412\u043d\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430<\/p><h2 id=\"bh-projects-title\" data-reveal>\u041a\u0430\u0436\u0434\u0430\u044f \u0438\u0434\u0435\u044f \u2014<br>\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f.<\/h2><p class=\"bh-section-lead\" data-reveal>\u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u0433\u043e\u0440\u043e\u0434, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0442\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c\u044e BanTV.<\/p><div class=\"bh-project-jump\"><a href=\"#bh-world\">World RP \u2198<\/a><a href=\"#bh-drop\">Drop \u2198<\/a><a href=\"#bh-signal\">SignalRP \u2198<\/a><a href=\"#bh-academy\">Academy \u2198<\/a><a href=\"#bh-spark\">\u0422\u0435\u043d\u0438 \u0418\u0441\u043a\u0440\u044b \u2198<\/a><a href=\"https:\/\/bantv.ru\/?page_id=1238\">\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u2197<\/a><\/div><\/div><\/section>\n <section class=\"bh-project bh-world\" id=\"bh-world\" aria-labelledby=\"bh-world-title\">\n  <div class=\"bh-world-sticky\"><div class=\"bh-wrap bh-project-grid\">\n   <div class=\"bh-project-copy\"><img loading=\"lazy\" decoding=\"async\" class=\"bh-world-logo\" src=\"https:\/\/bantv.ru\/wp-content\/uploads\/2026\/10\/%D0%9D%D0%B5%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9-%D0%BB%D0%BE%D0%B3%D0%BE%D1%82%D0%B8%D0%BF-BanTV-WORLD-%D1%81-%D0%BA%D1%83%D0%B1%D0%BE%D0%BC-300x300.png\" width=\"66\" height=\"66\" loading=\"lazy\" alt=\"\u041b\u043e\u0433\u043e\u0442\u0438\u043f BanTV World RP\"><p class=\"bh-project-kicker\"><b>01<\/b> \u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u043c\u0438\u0440 \/ \u0412 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435<\/p><h2 id=\"bh-world-title\" data-reveal>BanTV<br>World RP<span class=\"bh-project-subtitle\">\u0422\u0432\u043e\u044f \u0440\u043e\u043b\u044c. \u0422\u0432\u043e\u0439 \u0433\u043e\u0440\u043e\u0434. \u0422\u0432\u043e\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f.<\/span><\/h2><p class=\"bh-description\" data-reveal>\u041d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u043c \u2014 \u043d\u0430\u0439\u0442\u0438 \u0441\u0432\u043e\u0451 \u043c\u0435\u0441\u0442\u043e. \u0420\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c \u0440\u043e\u043b\u0435\u0432\u043e\u0439 \u043c\u0438\u0440 Minecraft, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438, \u0431\u0438\u0437\u043d\u0435\u0441 \u0438 \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0433\u0440\u043e\u043a\u043e\u0432.<\/p><div class=\"bh-features\"><span>Minecraft Java 1.20.1<\/span><span>Forge<\/span><span>\u0420\u043e\u043b\u0435\u0432\u0430\u044f \u0438\u0433\u0440\u0430<\/span><\/div><div class=\"bh-actions\"><a class=\"bh-btn bh-btn-primary\" href=\"https:\/\/bantv.ru\/?page_id=1742\">\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c World RP <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"bh-btn\" href=\"https:\/\/t.me\/BanTVWorldCommunity\">\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u2197<\/a><\/div><a class=\"bh-archive\" href=\"https:\/\/bantv.ru\/?page_id=924\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0433\u043b\u0430\u0432\u0430 \u2014 BanTV Forge \u2197<\/a><\/div>\n   <div><div class=\"bh-world-scene\"><span class=\"bh-city-label\">World RP \/ \u041a\u043e\u043d\u0446\u0435\u043f\u0442 \u0433\u043e\u0440\u043e\u0434\u0430<\/span><svg class=\"world-svg\" viewBox=\"0 0 1000 650\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><defs><radialGradient id=\"world-light\"><stop stop-color=\"#72a6d0\" stop-opacity=\".2\"><\/stop><stop offset=\"1\" stop-color=\"#72a6d0\" stop-opacity=\"0\"><\/stop><\/radialGradient><\/defs><ellipse cx=\"500\" cy=\"410\" rx=\"430\" ry=\"210\" fill=\"url(#world-light)\"><\/ellipse><g transform=\"translate(0 64)\"><g class=\"city-camera\" id=\"bwrp-city-map\"><g class=\"city-ground\"><polygon points=\"936.8,291.8 533.6,493.4 533.6,516.4 936.8,314.8\" fill=\"#162b3b\"><\/polygon><polygon points=\"63.2,258.2 533.6,493.4 533.6,516.4 63.2,281.2\" fill=\"#223646\"><\/polygon><polygon points=\"466.4,56.6 936.8,291.8 533.6,493.4 63.2,258.2\" fill=\"#314552\"><\/polygon><polygon points=\"932.3,291.8 533.6,491.2 533.6,493.2 932.3,293.8\" fill=\"#283f53\"><\/polygon><polygon points=\"67.7,258.2 533.6,491.2 533.6,493.2 67.7,260.2\" fill=\"#3a505e\"><\/polygon><polygon points=\"466.4,58.8 932.3,291.8 533.6,491.2 67.7,258.2\" fill=\"#536a73\"><\/polygon><polygon points=\"719.5,184.4 320.8,383.8 320.8,384.8 719.5,185.4\" fill=\"#132533\"><\/polygon><polygon points=\"280.5,363.6 320.8,383.8 320.8,384.8 280.5,364.6\" fill=\"#182a3a\"><\/polygon><polygon points=\"679.2,164.2 719.5,184.4 320.8,383.8 280.5,363.6\" fill=\"#213341\"><\/polygon><polygon points=\"755.4,379.3 710.6,401.7 710.6,402.7 755.4,380.3\" fill=\"#132533\"><\/polygon><polygon points=\"244.6,168.7 710.6,401.7 710.6,402.7 244.6,169.7\" fill=\"#182a3a\"><\/polygon><polygon points=\"289.4,146.3 755.4,379.3 710.6,401.7 244.6,168.7\" fill=\"#213341\"><\/polygon><polygon points=\"608.6,165.2 492.2,223.4 492.2,226.4 608.6,168.2\" fill=\"#425b6d\"><\/polygon><polygon points=\"342.1,148.4 492.2,223.4 492.2,226.4 342.1,151.4\" fill=\"#586e7a\"><\/polygon><polygon points=\"458.6,90.1 608.6,165.2 492.2,223.4 342.1,148.4\" fill=\"#798a91\"><\/polygon><path d=\"M472.0 96.7 L355.5 155.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M492.2 106.8 L375.7 165.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M512.3 116.9 L395.8 175.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M532.5 127.0 L416.0 185.2\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M552.6 137.1 L436.2 195.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M572.8 147.1 L456.3 205.4\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M593.0 157.2 L476.5 215.5\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M445.1 96.7 L595.2 171.8\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M425.0 106.8 L575.0 181.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M404.8 116.9 L554.9 191.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M384.6 127.0 L534.7 202.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M364.5 137.1 L514.6 212.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M344.3 147.1 L494.4 222.2\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><polygon points=\"861.8,291.7 745.3,350.0 745.3,353.0 861.8,294.7\" fill=\"#425b6d\"><\/polygon><polygon points=\"584.0,269.3 745.3,350.0 745.3,353.0 584.0,272.3\" fill=\"#586e7a\"><\/polygon><polygon points=\"700.5,211.1 861.8,291.7 745.3,350.0 584.0,269.3\" fill=\"#798a91\"><\/polygon><path d=\"M713.9 217.7 L597.4 275.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M734.1 227.8 L617.6 286.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M754.2 237.9 L637.8 296.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M774.4 247.9 L657.9 306.2\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M794.6 258.0 L678.1 316.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M814.7 268.1 L698.2 326.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M834.9 278.2 L718.4 336.4\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M855.0 288.3 L738.6 346.5\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M687.0 217.7 L848.3 298.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M666.9 227.8 L828.2 308.4\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M646.7 237.9 L808.0 318.5\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M626.6 247.9 L787.8 328.6\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M606.4 258.0 L767.7 338.7\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M586.2 268.1 L747.5 348.7\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><polygon points=\"408.2,265.4 282.7,328.1 282.7,331.1 408.2,268.4\" fill=\"#425b6d\"><\/polygon><polygon points=\"132.6,253.1 282.7,328.1 282.7,331.1 132.6,256.1\" fill=\"#586e7a\"><\/polygon><polygon points=\"258.1,190.4 408.2,265.4 282.7,328.1 132.6,253.1\" fill=\"#798a91\"><\/polygon><path d=\"M271.5 197.0 L146.1 259.7\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M291.7 207.1 L166.2 269.8\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M311.8 217.1 L186.4 279.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M332.0 227.2 L206.6 289.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M352.2 237.3 L226.7 300.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M372.3 247.4 L246.9 310.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M392.5 257.5 L267.0 320.2\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M244.6 197.0 L394.7 272.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M224.5 207.1 L374.6 282.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M204.3 217.1 L354.4 292.2\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M184.2 227.2 L334.2 302.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M164.0 237.3 L314.1 312.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M143.8 247.4 L293.9 322.4\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><polygon points=\"643.4,383.0 517.9,445.7 517.9,448.7 643.4,386.0\" fill=\"#425b6d\"><\/polygon><polygon points=\"379.0,376.3 517.9,445.7 517.9,448.7 379.0,379.3\" fill=\"#586e7a\"><\/polygon><polygon points=\"504.5,313.6 643.4,383.0 517.9,445.7 379.0,376.3\" fill=\"#798a91\"><\/polygon><path d=\"M517.9 320.2 L392.5 382.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M538.1 330.3 L412.6 393.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M558.2 340.3 L432.8 403.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M578.4 350.4 L453.0 413.1\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M598.6 360.5 L473.1 423.2\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M618.7 370.6 L493.3 433.3\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M638.9 380.7 L513.4 443.4\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M491.0 320.2 L629.9 389.6\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M470.9 330.3 L609.8 399.7\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M450.7 340.3 L589.6 409.8\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M430.6 350.4 L569.4 419.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M410.4 360.5 L549.3 429.9\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><path d=\"M390.2 370.6 L529.1 440.0\" fill=\"none\" stroke=\"#a1adb3\" stroke-width=\"0.45\" opacity=\".28\"><\/path><polygon points=\"674.7,187.5 661.3,194.2 661.3,194.3 674.7,187.6\" fill=\"#93a9b7\"><\/polygon><polygon points=\"659.0,193.1 661.3,194.2 661.3,194.3 659.0,193.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"672.5,186.3 674.7,187.5 661.3,194.2 659.0,193.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"643.4,203.1 629.9,209.9 629.9,210.0 643.4,203.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"627.7,208.7 629.9,209.9 629.9,210.0 627.7,208.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"641.1,202.0 643.4,203.1 629.9,209.9 627.7,208.7\" fill=\"#93a9b7\"><\/polygon><polygon points=\"612.0,218.8 598.6,225.5 598.6,225.6 612.0,218.9\" fill=\"#93a9b7\"><\/polygon><polygon points=\"596.3,224.4 598.6,225.5 598.6,225.6 596.3,224.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"609.8,217.7 612.0,218.8 598.6,225.5 596.3,224.4\" fill=\"#93a9b7\"><\/polygon><polygon points=\"580.6,234.5 567.2,241.2 567.2,241.3 580.6,234.6\" fill=\"#93a9b7\"><\/polygon><polygon points=\"565.0,240.1 567.2,241.2 567.2,241.3 565.0,240.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"578.4,233.4 580.6,234.5 567.2,241.2 565.0,240.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"549.3,250.2 535.8,256.9 535.8,257.0 549.3,250.3\" fill=\"#93a9b7\"><\/polygon><polygon points=\"533.6,255.8 535.8,256.9 535.8,257.0 533.6,255.9\" fill=\"#93a9b7\"><\/polygon><polygon points=\"547.0,249.1 549.3,250.2 535.8,256.9 533.6,255.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"455.2,297.2 441.8,303.9 441.8,304.0 455.2,297.3\" fill=\"#93a9b7\"><\/polygon><polygon points=\"439.5,302.8 441.8,303.9 441.8,304.0 439.5,302.9\" fill=\"#93a9b7\"><\/polygon><polygon points=\"453.0,296.1 455.2,297.2 441.8,303.9 439.5,302.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"423.8,312.9 410.4,319.6 410.4,319.7 423.8,313.0\" fill=\"#93a9b7\"><\/polygon><polygon points=\"408.2,318.5 410.4,319.6 410.4,319.7 408.2,318.6\" fill=\"#93a9b7\"><\/polygon><polygon points=\"421.6,311.8 423.8,312.9 410.4,319.6 408.2,318.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"392.5,328.6 379.0,335.3 379.0,335.4 392.5,328.7\" fill=\"#93a9b7\"><\/polygon><polygon points=\"376.8,334.2 379.0,335.3 379.0,335.4 376.8,334.3\" fill=\"#93a9b7\"><\/polygon><polygon points=\"390.2,327.5 392.5,328.6 379.0,335.3 376.8,334.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"361.1,344.3 347.7,351.0 347.7,351.1 361.1,344.4\" fill=\"#93a9b7\"><\/polygon><polygon points=\"345.4,349.9 347.7,351.0 347.7,351.1 345.4,350.0\" fill=\"#93a9b7\"><\/polygon><polygon points=\"358.9,343.1 361.1,344.3 347.7,351.0 345.4,349.9\" fill=\"#93a9b7\"><\/polygon><polygon points=\"329.8,359.9 316.3,366.7 316.3,366.8 329.8,360.0\" fill=\"#93a9b7\"><\/polygon><polygon points=\"314.1,365.5 316.3,366.7 316.3,366.8 314.1,365.6\" fill=\"#93a9b7\"><\/polygon><polygon points=\"327.5,358.8 329.8,359.9 316.3,366.7 314.1,365.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"307.4,176.3 305.1,177.4 305.1,177.5 307.4,176.4\" fill=\"#93a9b7\"><\/polygon><polygon points=\"291.7,170.7 305.1,177.4 305.1,177.5 291.7,170.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"293.9,169.5 307.4,176.3 305.1,177.4 291.7,170.7\" fill=\"#93a9b7\"><\/polygon><polygon points=\"338.7,191.9 336.5,193.1 336.5,193.2 338.7,192.0\" fill=\"#93a9b7\"><\/polygon><polygon points=\"323.0,186.3 336.5,193.1 336.5,193.2 323.0,186.4\" fill=\"#93a9b7\"><\/polygon><polygon points=\"325.3,185.2 338.7,191.9 336.5,193.1 323.0,186.3\" fill=\"#93a9b7\"><\/polygon><polygon points=\"370.1,207.6 367.8,208.7 367.8,208.8 370.1,207.7\" fill=\"#93a9b7\"><\/polygon><polygon points=\"354.4,202.0 367.8,208.7 367.8,208.8 354.4,202.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"356.6,200.9 370.1,207.6 367.8,208.7 354.4,202.0\" fill=\"#93a9b7\"><\/polygon><polygon points=\"401.4,223.3 399.2,224.4 399.2,224.5 401.4,223.4\" fill=\"#93a9b7\"><\/polygon><polygon points=\"385.8,217.7 399.2,224.4 399.2,224.5 385.8,217.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"388.0,216.6 401.4,223.3 399.2,224.4 385.8,217.7\" fill=\"#93a9b7\"><\/polygon><polygon points=\"432.8,239.0 430.6,240.1 430.6,240.2 432.8,239.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"417.1,233.4 430.6,240.1 430.6,240.2 417.1,233.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"419.4,232.3 432.8,239.0 430.6,240.1 417.1,233.4\" fill=\"#93a9b7\"><\/polygon><polygon points=\"464.2,254.7 461.9,255.8 461.9,255.9 464.2,254.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"448.5,249.1 461.9,255.8 461.9,255.9 448.5,249.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"450.7,247.9 464.2,254.7 461.9,255.8 448.5,249.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"558.2,301.7 556.0,302.8 556.0,302.9 558.2,301.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"542.6,296.1 556.0,302.8 556.0,302.9 542.6,296.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"544.8,295.0 558.2,301.7 556.0,302.8 542.6,296.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"589.6,317.4 587.4,318.5 587.4,318.6 589.6,317.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"573.9,311.8 587.4,318.5 587.4,318.6 573.9,311.9\" fill=\"#93a9b7\"><\/polygon><polygon points=\"576.2,310.7 589.6,317.4 587.4,318.5 573.9,311.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"621.0,333.1 618.7,334.2 618.7,334.3 621.0,333.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"605.3,327.5 618.7,334.2 618.7,334.3 605.3,327.6\" fill=\"#93a9b7\"><\/polygon><polygon points=\"607.5,326.3 621.0,333.1 618.7,334.2 605.3,327.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"652.3,348.7 650.1,349.9 650.1,350.0 652.3,348.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"636.6,343.1 650.1,349.9 650.1,350.0 636.6,343.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"638.9,342.0 652.3,348.7 650.1,349.9 636.6,343.1\" fill=\"#93a9b7\"><\/polygon><polygon points=\"683.7,364.4 681.4,365.5 681.4,365.6 683.7,364.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"668.0,358.8 681.4,365.5 681.4,365.6 668.0,358.9\" fill=\"#93a9b7\"><\/polygon><polygon points=\"670.2,357.7 683.7,364.4 681.4,365.5 668.0,358.8\" fill=\"#93a9b7\"><\/polygon><polygon points=\"715.0,380.1 712.8,381.2 712.8,381.3 715.0,380.2\" fill=\"#93a9b7\"><\/polygon><polygon points=\"699.4,374.5 712.8,381.2 712.8,381.3 699.4,374.6\" fill=\"#93a9b7\"><\/polygon><polygon points=\"701.6,373.4 715.0,380.1 712.8,381.2 699.4,374.5\" fill=\"#93a9b7\"><\/polygon><polygon points=\"489.9,252.9 485.4,255.1 485.4,255.2 489.9,253.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"479.8,252.3 485.4,255.1 485.4,255.2 479.8,252.4\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"484.3,250.1 489.9,252.9 485.4,255.1 479.8,252.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"482.1,256.8 477.6,259.0 477.6,259.1 482.1,256.9\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"472.0,256.2 477.6,259.0 477.6,259.1 472.0,256.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"476.5,254.0 482.1,256.8 477.6,259.0 472.0,256.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"474.2,260.7 469.8,263.0 469.8,263.1 474.2,260.8\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"464.2,260.2 469.8,263.0 469.8,263.1 464.2,260.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"468.6,257.9 474.2,260.7 469.8,263.0 464.2,260.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"466.4,264.6 461.9,266.9 461.9,267.0 466.4,264.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"456.3,264.1 461.9,266.9 461.9,267.0 456.3,264.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"460.8,261.8 466.4,264.6 461.9,266.9 456.3,264.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"458.6,268.6 454.1,270.8 454.1,270.9 458.6,268.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"448.5,268.0 454.1,270.8 454.1,270.9 448.5,268.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"453.0,265.8 458.6,268.6 454.1,270.8 448.5,268.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"545.9,280.9 541.4,283.1 541.4,283.2 545.9,281.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"535.8,280.3 541.4,283.1 541.4,283.2 535.8,280.4\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"540.3,278.1 545.9,280.9 541.4,283.1 535.8,280.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"538.1,284.8 533.6,287.0 533.6,287.1 538.1,284.9\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"528.0,284.2 533.6,287.0 533.6,287.1 528.0,284.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"532.5,282.0 538.1,284.8 533.6,287.0 528.0,284.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"530.2,288.7 525.8,291.0 525.8,291.1 530.2,288.8\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"520.2,288.2 525.8,291.0 525.8,291.1 520.2,288.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"524.6,285.9 530.2,288.7 525.8,291.0 520.2,288.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"522.4,292.6 517.9,294.9 517.9,295.0 522.4,292.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"512.3,292.1 517.9,294.9 517.9,295.0 512.3,292.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"516.8,289.8 522.4,292.6 517.9,294.9 512.3,292.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"514.6,296.6 510.1,298.8 510.1,298.9 514.6,296.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"504.5,296.0 510.1,298.8 510.1,298.9 504.5,296.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"509.0,293.8 514.6,296.6 510.1,298.8 504.5,296.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"524.6,252.3 519.0,255.1 519.0,255.2 524.6,252.4\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"514.6,252.9 519.0,255.1 519.0,255.2 514.6,253.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"520.2,250.1 524.6,252.3 519.0,255.1 514.6,252.9\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"532.5,256.2 526.9,259.0 526.9,259.1 532.5,256.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"522.4,256.8 526.9,259.0 526.9,259.1 522.4,256.9\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"528.0,254.0 532.5,256.2 526.9,259.0 522.4,256.8\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"540.3,260.2 534.7,263.0 534.7,263.1 540.3,260.3\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"530.2,260.7 534.7,263.0 534.7,263.1 530.2,260.8\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"535.8,257.9 540.3,260.2 534.7,263.0 530.2,260.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"548.2,264.1 542.6,266.9 542.6,267.0 548.2,264.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"538.1,264.6 542.6,266.9 542.6,267.0 538.1,264.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"543.7,261.8 548.2,264.1 542.6,266.9 538.1,264.6\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"464.2,282.6 458.6,285.4 458.6,285.5 464.2,282.7\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"454.1,283.1 458.6,285.4 458.6,285.5 454.1,283.2\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"459.7,280.3 464.2,282.6 458.6,285.4 454.1,283.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"472.0,286.5 466.4,289.3 466.4,289.4 472.0,286.6\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"461.9,287.0 466.4,289.3 466.4,289.4 461.9,287.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"467.5,284.2 472.0,286.5 466.4,289.3 461.9,287.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"479.8,290.4 474.2,293.2 474.2,293.3 479.8,290.5\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"469.8,291.0 474.2,293.2 474.2,293.3 469.8,291.1\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"475.4,288.2 479.8,290.4 474.2,293.2 469.8,291.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"487.7,294.3 482.1,297.1 482.1,297.2 487.7,294.4\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"477.6,294.9 482.1,297.1 482.1,297.2 477.6,295.0\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"483.2,292.1 487.7,294.3 482.1,297.1 477.6,294.9\" fill=\"#c3cdd0\"><\/polygon><polygon points=\"559.4,472.9 540.3,482.4 540.3,484.4 559.4,474.9\" fill=\"#3c5568\"><\/polygon><polygon points=\"81.1,252.8 540.3,482.4 540.3,484.4 81.1,254.8\" fill=\"#526b7c\"><\/polygon><polygon points=\"100.2,243.3 559.4,472.9 540.3,482.4 81.1,252.8\" fill=\"#6f828d\"><\/polygon><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"-333\"><polygon points=\"483.2,87.8 458.6,100.1 458.6,103.1 483.2,90.8\" fill=\"#2e4848\"><\/polygon><polygon points=\"433.9,87.8 458.6,100.1 458.6,103.1 433.9,90.8\" fill=\"#405f58\"><\/polygon><polygon points=\"458.6,75.4 483.2,87.8 458.6,100.1 433.9,87.8\" fill=\"#647c70\"><\/polygon><polygon points=\"461.9,70.2 458.6,71.9 458.6,88.9 461.9,87.2\" fill=\"#544631\"><\/polygon><polygon points=\"455.2,70.2 458.6,71.9 458.6,88.9 455.2,87.2\" fill=\"#756149\"><\/polygon><polygon points=\"458.6,68.5 461.9,70.2 458.6,71.9 455.2,70.2\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"484.3,56.2 458.6,69.1 458.6,85.1 484.3,72.2\" fill=\"#416a55\"><\/polygon><polygon points=\"432.8,56.2 458.6,69.1 458.6,85.1 432.8,72.2\" fill=\"#63866c\"><\/polygon><polygon points=\"458.6,43.3 484.3,56.2 458.6,69.1 432.8,56.2\" fill=\"#8da98b\"><\/polygon><polygon points=\"477.6,44.2 458.6,53.7 458.6,65.7 477.6,56.2\" fill=\"#416a55\"><\/polygon><polygon points=\"439.5,44.2 458.6,53.7 458.6,65.7 439.5,56.2\" fill=\"#63866c\"><\/polygon><polygon points=\"458.6,34.7 477.6,44.2 458.6,53.7 439.5,44.2\" fill=\"#8da98b\"><\/polygon><polygon points=\"470.9,37.2 458.6,43.4 458.6,50.4 470.9,44.2\" fill=\"#416a55\"><\/polygon><polygon points=\"446.2,37.2 458.6,43.4 458.6,50.4 446.2,44.2\" fill=\"#63866c\"><\/polygon><polygon points=\"458.6,31.0 470.9,37.2 458.6,43.4 446.2,37.2\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"-197\"><polygon points=\"642.2,163.9 617.6,176.2 617.6,179.2 642.2,166.9\" fill=\"#2e4848\"><\/polygon><polygon points=\"593.0,163.9 617.6,176.2 617.6,179.2 593.0,166.9\" fill=\"#405f58\"><\/polygon><polygon points=\"617.6,151.6 642.2,163.9 617.6,176.2 593.0,163.9\" fill=\"#647c70\"><\/polygon><polygon points=\"621.0,146.4 617.6,148.0 617.6,165.0 621.0,163.4\" fill=\"#544631\"><\/polygon><polygon points=\"614.2,146.4 617.6,148.0 617.6,165.0 614.2,163.4\" fill=\"#756149\"><\/polygon><polygon points=\"617.6,144.7 621.0,146.4 617.6,148.0 614.2,146.4\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"643.4,132.4 617.6,145.2 617.6,161.2 643.4,148.4\" fill=\"#416a55\"><\/polygon><polygon points=\"591.8,132.4 617.6,145.2 617.6,161.2 591.8,148.4\" fill=\"#63866c\"><\/polygon><polygon points=\"617.6,119.5 643.4,132.4 617.6,145.2 591.8,132.4\" fill=\"#8da98b\"><\/polygon><polygon points=\"636.6,120.4 617.6,129.9 617.6,141.9 636.6,132.4\" fill=\"#416a55\"><\/polygon><polygon points=\"598.6,120.4 617.6,129.9 617.6,141.9 598.6,132.4\" fill=\"#63866c\"><\/polygon><polygon points=\"617.6,110.8 636.6,120.4 617.6,129.9 598.6,120.4\" fill=\"#8da98b\"><\/polygon><polygon points=\"629.9,113.4 617.6,119.5 617.6,126.5 629.9,120.4\" fill=\"#416a55\"><\/polygon><polygon points=\"605.3,113.4 617.6,119.5 617.6,126.5 605.3,120.4\" fill=\"#63866c\"><\/polygon><polygon points=\"617.6,107.2 629.9,113.4 617.6,119.5 605.3,113.4\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object district\" data-district=\"0\" data-rise=\"\" data-depth=\"-195\"><g id=\"bwrp-model-hall\"><g class=\"building-piece\" data-layer=\"0\"><polygon points=\"458.6,116.5 573.9,174.2 486.6,222.4 366.7,162.4\" fill=\"#0a1421\" opacity=\".27\"><\/polygon><polygon points=\"561.6,162.2 481.0,202.5 481.0,209.5 561.6,169.2\" fill=\"#354b5e\"><\/polygon><polygon points=\"377.9,151.0 481.0,202.5 481.0,209.5 377.9,158.0\" fill=\"#4e6474\"><\/polygon><polygon points=\"458.6,110.6 561.6,162.2 481.0,202.5 377.9,151.0\" fill=\"#81939f\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"0.7\"><polygon points=\"552.6,133.2 481.0,169.0 481.0,198.0 552.6,162.2\" fill=\"#627b8e\"><\/polygon><polygon points=\"386.9,122.0 481.0,169.0 481.0,198.0 386.9,151.0\" fill=\"#899eac\"><\/polygon><polygon points=\"458.6,86.1 552.6,133.2 481.0,169.0 386.9,122.0\" fill=\"#b6c7d0\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"1.5333333333333332\"><polygon points=\"552.6,104.2 481.0,140.0 481.0,169.0 552.6,133.2\" fill=\"#627b8e\"><\/polygon><polygon points=\"386.9,93.0 481.0,140.0 481.0,169.0 386.9,122.0\" fill=\"#899eac\"><\/polygon><polygon points=\"458.6,57.1 552.6,104.2 481.0,140.0 386.9,93.0\" fill=\"#b6c7d0\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"2.3666666666666667\"><polygon points=\"552.6,75.2 481.0,111.0 481.0,140.0 552.6,104.2\" fill=\"#627b8e\"><\/polygon><polygon points=\"386.9,64.0 481.0,111.0 481.0,140.0 386.9,93.0\" fill=\"#899eac\"><\/polygon><polygon points=\"458.6,28.1 552.6,75.2 481.0,111.0 386.9,64.0\" fill=\"#b6c7d0\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.2\"><polygon points=\"554.9,132.0 481.0,168.9 481.0,170.1 554.9,133.2\" fill=\"#506f85\"><\/polygon><polygon points=\"384.6,120.8 481.0,168.9 481.0,170.1 384.6,122.0\" fill=\"#728d9d\"><\/polygon><polygon points=\"458.6,83.8 554.9,132.0 481.0,168.9 384.6,120.8\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"554.9,103.0 481.0,139.9 481.0,141.1 554.9,104.2\" fill=\"#506f85\"><\/polygon><polygon points=\"384.6,91.8 481.0,139.9 481.0,141.1 384.6,93.0\" fill=\"#728d9d\"><\/polygon><polygon points=\"458.6,54.8 554.9,103.0 481.0,139.9 384.6,91.8\" fill=\"#b0c8d2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.7\"><polygon points=\"400.3,75.9 392.5,79.8 392.5,163.8 400.3,159.9\" fill=\"#7894a8\"><\/polygon><polygon points=\"384.6,75.9 392.5,79.8 392.5,163.8 384.6,159.9\" fill=\"#b4c7d0\"><\/polygon><polygon points=\"392.5,72.0 400.3,75.9 392.5,79.8 384.6,75.9\" fill=\"#d6e2e8\"><\/polygon><polygon points=\"422.7,87.1 414.9,91.0 414.9,175.0 422.7,171.1\" fill=\"#7894a8\"><\/polygon><polygon points=\"407.0,87.1 414.9,91.0 414.9,175.0 407.0,171.1\" fill=\"#b4c7d0\"><\/polygon><polygon points=\"414.9,83.2 422.7,87.1 414.9,91.0 407.0,87.1\" fill=\"#d6e2e8\"><\/polygon><polygon points=\"445.1,98.3 437.3,102.2 437.3,186.2 445.1,182.3\" fill=\"#7894a8\"><\/polygon><polygon points=\"429.4,98.3 437.3,102.2 437.3,186.2 429.4,182.3\" fill=\"#b4c7d0\"><\/polygon><polygon points=\"437.3,94.4 445.1,98.3 437.3,102.2 429.4,98.3\" fill=\"#d6e2e8\"><\/polygon><polygon points=\"467.5,109.5 459.7,113.4 459.7,197.4 467.5,193.5\" fill=\"#7894a8\"><\/polygon><polygon points=\"451.8,109.5 459.7,113.4 459.7,197.4 451.8,193.5\" fill=\"#b4c7d0\"><\/polygon><polygon points=\"459.7,105.6 467.5,109.5 459.7,113.4 451.8,109.5\" fill=\"#d6e2e8\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"4.2\"><polygon points=\"559.4,71.2 481.0,110.4 481.0,114.4 559.4,75.2\" fill=\"#4f6a83\"><\/polygon><polygon points=\"380.2,60.0 481.0,110.4 481.0,114.4 380.2,64.0\" fill=\"#738c9e\"><\/polygon><polygon points=\"458.6,20.8 559.4,71.2 481.0,110.4 380.2,60.0\" fill=\"#b1c4ce\"><\/polygon><polygon points=\"534.7,63.2 481.0,90.0 481.0,98.0 534.7,71.2\" fill=\"#607e94\"><\/polygon><polygon points=\"404.8,52.0 481.0,90.0 481.0,98.0 404.8,60.0\" fill=\"#92aab9\"><\/polygon><polygon points=\"458.6,25.1 534.7,63.2 481.0,90.0 404.8,52.0\" fill=\"#d2dfe5\"><\/polygon><polygon points=\"523.5,61.2 481.0,82.4 481.0,84.4 523.5,63.2\" fill=\"#2c485c\"><\/polygon><polygon points=\"416.0,50.0 481.0,82.4 481.0,84.4 416.0,52.0\" fill=\"#416579\"><\/polygon><polygon points=\"458.6,28.7 523.5,61.2 481.0,82.4 416.0,50.0\" fill=\"#6b8fa5\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"4.9\"><polygon points=\"396.3,140.3 409.7,147.1 409.7,131.1 396.3,124.3\" fill=\"#253c50\"><\/polygon><polygon points=\"397.2,140.0 408.4,145.6 408.4,131.6 397.2,126.0\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"402.0,142.6 402.9,143.1 402.9,129.1 402.0,128.6\" fill=\"#547b91\"><\/polygon><polygon points=\"417.6,151.0 431.0,157.7 431.0,141.7 417.6,135.0\" fill=\"#253c50\"><\/polygon><polygon points=\"418.5,150.6 429.7,156.2 429.7,142.2 418.5,136.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"423.3,153.3 424.2,153.7 424.2,139.7 423.3,139.3\" fill=\"#547b91\"><\/polygon><polygon points=\"438.8,161.6 452.3,168.3 452.3,152.3 438.8,145.6\" fill=\"#253c50\"><\/polygon><polygon points=\"439.7,161.3 450.9,166.9 450.9,152.9 439.7,147.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"444.6,163.9 445.5,164.4 445.5,150.4 444.6,149.9\" fill=\"#547b91\"><\/polygon><polygon points=\"460.1,172.3 473.6,179.0 473.6,163.0 460.1,156.3\" fill=\"#253c50\"><\/polygon><polygon points=\"461.0,171.9 472.2,177.5 472.2,163.5 461.0,157.9\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"465.8,174.6 466.7,175.0 466.7,161.0 465.8,160.6\" fill=\"#547b91\"><\/polygon><polygon points=\"543.2,151.5 529.8,158.3 529.8,142.3 543.2,135.5\" fill=\"#22364b\"><\/polygon><polygon points=\"542.3,151.2 531.1,156.8 531.1,142.8 542.3,137.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"522.0,162.2 508.5,168.9 508.5,152.9 522.0,146.2\" fill=\"#22364b\"><\/polygon><polygon points=\"521.1,161.8 509.9,167.4 509.9,153.4 521.1,147.8\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"500.7,172.8 487.2,179.5 487.2,163.5 500.7,156.8\" fill=\"#22364b\"><\/polygon><polygon points=\"499.8,172.5 488.6,178.1 488.6,164.1 499.8,158.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"396.3,116.3 409.7,123.1 409.7,107.1 396.3,100.3\" fill=\"#253c50\"><\/polygon><polygon points=\"397.2,116.0 408.4,121.6 408.4,107.6 397.2,102.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"402.0,118.6 402.9,119.1 402.9,105.1 402.0,104.6\" fill=\"#547b91\"><\/polygon><polygon points=\"417.6,127.0 431.0,133.7 431.0,117.7 417.6,111.0\" fill=\"#253c50\"><\/polygon><polygon points=\"418.5,126.6 429.7,132.2 429.7,118.2 418.5,112.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"423.3,129.3 424.2,129.7 424.2,115.7 423.3,115.3\" fill=\"#547b91\"><\/polygon><polygon points=\"438.8,137.6 452.3,144.3 452.3,128.3 438.8,121.6\" fill=\"#253c50\"><\/polygon><polygon points=\"439.7,137.3 450.9,142.9 450.9,128.9 439.7,123.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"444.6,139.9 445.5,140.4 445.5,126.4 444.6,125.9\" fill=\"#547b91\"><\/polygon><polygon points=\"460.1,148.3 473.6,155.0 473.6,139.0 460.1,132.3\" fill=\"#253c50\"><\/polygon><polygon points=\"461.0,147.9 472.2,153.5 472.2,139.5 461.0,133.9\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"465.8,150.6 466.7,151.0 466.7,137.0 465.8,136.6\" fill=\"#547b91\"><\/polygon><polygon points=\"543.2,127.5 529.8,134.3 529.8,118.3 543.2,111.5\" fill=\"#22364b\"><\/polygon><polygon points=\"542.3,127.2 531.1,132.8 531.1,118.8 542.3,113.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"522.0,138.2 508.5,144.9 508.5,128.9 522.0,122.2\" fill=\"#22364b\"><\/polygon><polygon points=\"521.1,137.8 509.9,143.4 509.9,129.4 521.1,123.8\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"500.7,148.8 487.2,155.5 487.2,139.5 500.7,132.8\" fill=\"#22364b\"><\/polygon><polygon points=\"499.8,148.5 488.6,154.1 488.6,140.1 499.8,134.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"396.3,92.3 409.7,99.1 409.7,83.1 396.3,76.3\" fill=\"#253c50\"><\/polygon><polygon points=\"397.2,92.0 408.4,97.6 408.4,83.6 397.2,78.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"402.0,94.6 402.9,95.1 402.9,81.1 402.0,80.6\" fill=\"#547b91\"><\/polygon><polygon points=\"417.6,103.0 431.0,109.7 431.0,93.7 417.6,87.0\" fill=\"#253c50\"><\/polygon><polygon points=\"418.5,102.6 429.7,108.2 429.7,94.2 418.5,88.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"423.3,105.3 424.2,105.7 424.2,91.7 423.3,91.3\" fill=\"#547b91\"><\/polygon><polygon points=\"438.8,113.6 452.3,120.3 452.3,104.3 438.8,97.6\" fill=\"#253c50\"><\/polygon><polygon points=\"439.7,113.3 450.9,118.9 450.9,104.9 439.7,99.3\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"444.6,115.9 445.5,116.4 445.5,102.4 444.6,101.9\" fill=\"#547b91\"><\/polygon><polygon points=\"460.1,124.3 473.6,131.0 473.6,115.0 460.1,108.3\" fill=\"#253c50\"><\/polygon><polygon points=\"461.0,123.9 472.2,129.5 472.2,115.5 461.0,109.9\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"465.8,126.6 466.7,127.0 466.7,113.0 465.8,112.6\" fill=\"#547b91\"><\/polygon><polygon points=\"543.2,103.5 529.8,110.3 529.8,94.3 543.2,87.5\" fill=\"#22364b\"><\/polygon><polygon points=\"542.3,103.2 531.1,108.8 531.1,94.8 542.3,89.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"522.0,114.2 508.5,120.9 508.5,104.9 522.0,98.2\" fill=\"#22364b\"><\/polygon><polygon points=\"521.1,113.8 509.9,119.4 509.9,105.4 521.1,99.8\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"500.7,124.8 487.2,131.5 487.2,115.5 500.7,108.8\" fill=\"#22364b\"><\/polygon><polygon points=\"499.8,124.5 488.6,130.1 488.6,116.1 499.8,110.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"5.2\"><polygon points=\"444.0,155.6 442.9,156.2 442.9,181.2 444.0,180.6\" fill=\"#29495f\"><\/polygon><polygon points=\"420.5,145.0 442.9,156.2 442.9,181.2 420.5,170.0\" fill=\"#365c74\"><\/polygon><polygon points=\"421.6,144.4 444.0,155.6 442.9,156.2 420.5,145.0\" fill=\"#7eacbf\"><\/polygon><polygon points=\"446.2,181.8 435.0,187.4 435.0,189.4 446.2,183.8\" fill=\"#4c677c\"><\/polygon><polygon points=\"408.2,173.9 435.0,187.4 435.0,189.4 408.2,175.9\" fill=\"#718899\"><\/polygon><polygon points=\"419.4,168.3 446.2,181.8 435.0,187.4 408.2,173.9\" fill=\"#acbac2\"><\/polygon><polygon points=\"449.6,154.3 435.0,161.6 435.0,163.6 449.6,156.3\" fill=\"#44677f\"><\/polygon><polygon points=\"403.7,145.9 435.0,161.6 435.0,163.6 403.7,147.9\" fill=\"#6a899d\"><\/polygon><polygon points=\"418.2,138.6 449.6,154.3 435.0,161.6 403.7,145.9\" fill=\"#b3cbd7\"><\/polygon><\/g><g class=\"building-piece facade-finish\" data-layer=\"5.4\"><path d=\"M386.7 140.0 L480.8 187.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M552.8 151.2 L481.1 187.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M386.7 128.0 L480.8 175.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M552.8 139.2 L481.1 175.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M386.7 116.0 L480.8 163.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M552.8 127.2 L481.1 163.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M386.7 104.0 L480.8 151.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M552.8 115.2 L481.1 151.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M386.7 92.0 L480.8 139.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M552.8 103.2 L481.1 139.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M386.7 80.0 L480.8 127.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M552.8 91.2 L481.1 127.1\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><polygon points=\"410.1,146.6 407.8,147.7 407.8,149.0 410.1,147.9\" fill=\"#58798f\"><\/polygon><polygon points=\"394.4,141.0 407.8,147.7 407.8,149.0 394.4,142.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"396.6,139.9 410.1,146.6 407.8,147.7 394.4,141.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M396.8 133.2 L408.0 138.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"397.9,128.8 400.1,129.9 405.7,142.7 403.5,141.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"431.3,157.2 429.1,158.3 429.1,159.6 431.3,158.5\" fill=\"#58798f\"><\/polygon><polygon points=\"415.7,151.6 429.1,158.3 429.1,159.6 415.7,152.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"417.9,150.5 431.3,157.2 429.1,158.3 415.7,151.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M418.1 143.8 L429.3 149.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"419.1,139.4 421.4,140.6 427.0,153.4 424.7,152.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"452.6,167.9 450.4,169.0 450.4,170.3 452.6,169.2\" fill=\"#58798f\"><\/polygon><polygon points=\"436.9,162.3 450.4,169.0 450.4,170.3 436.9,163.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"439.2,161.1 452.6,167.9 450.4,169.0 436.9,162.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M439.4 154.5 L450.6 160.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"440.4,150.1 442.7,151.2 448.3,164.0 446.0,162.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"473.9,178.5 471.7,179.6 471.7,180.9 473.9,179.8\" fill=\"#58798f\"><\/polygon><polygon points=\"458.2,172.9 471.7,179.6 471.7,180.9 458.2,174.2\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"460.5,171.8 473.9,178.5 471.7,179.6 458.2,172.9\" fill=\"#b8cad3\"><\/polygon><path d=\"M460.7 165.1 L471.9 170.7\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"461.7,160.7 463.9,161.8 469.5,174.6 467.3,173.5\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M537.0 154.1 L537.0 140.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M542.6 144.3 L531.4 149.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"545.1,152.2 531.7,158.9 531.7,160.2 545.1,153.5\" fill=\"#426881\"><\/polygon><polygon points=\"529.5,157.8 531.7,158.9 531.7,160.2 529.5,159.1\" fill=\"#63869d\"><\/polygon><polygon points=\"542.9,151.1 545.1,152.2 531.7,158.9 529.5,157.8\" fill=\"#9ab5c4\"><\/polygon><path d=\"M515.7 164.8 L515.7 150.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M521.3 155.0 L510.1 160.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"523.9,162.8 510.4,169.5 510.4,170.8 523.9,164.1\" fill=\"#426881\"><\/polygon><polygon points=\"508.2,168.4 510.4,169.5 510.4,170.8 508.2,169.7\" fill=\"#63869d\"><\/polygon><polygon points=\"521.6,161.7 523.9,162.8 510.4,169.5 508.2,168.4\" fill=\"#9ab5c4\"><\/polygon><path d=\"M494.4 175.4 L494.4 161.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M500.0 165.6 L488.8 171.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"502.6,173.5 489.1,180.2 489.1,181.5 502.6,174.8\" fill=\"#426881\"><\/polygon><polygon points=\"486.9,179.1 489.1,180.2 489.1,181.5 486.9,180.4\" fill=\"#63869d\"><\/polygon><polygon points=\"500.3,172.3 502.6,173.5 489.1,180.2 486.9,179.1\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"410.1,122.6 407.8,123.7 407.8,125.0 410.1,123.9\" fill=\"#58798f\"><\/polygon><polygon points=\"394.4,117.0 407.8,123.7 407.8,125.0 394.4,118.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"396.6,115.9 410.1,122.6 407.8,123.7 394.4,117.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M396.8 109.2 L408.0 114.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"397.9,104.8 400.1,105.9 405.7,118.7 403.5,117.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"431.3,133.2 429.1,134.3 429.1,135.6 431.3,134.5\" fill=\"#58798f\"><\/polygon><polygon points=\"415.7,127.6 429.1,134.3 429.1,135.6 415.7,128.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"417.9,126.5 431.3,133.2 429.1,134.3 415.7,127.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M418.1 119.8 L429.3 125.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"419.1,115.4 421.4,116.6 427.0,129.4 424.7,128.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"452.6,143.9 450.4,145.0 450.4,146.3 452.6,145.2\" fill=\"#58798f\"><\/polygon><polygon points=\"436.9,138.3 450.4,145.0 450.4,146.3 436.9,139.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"439.2,137.1 452.6,143.9 450.4,145.0 436.9,138.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M439.4 130.5 L450.6 136.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"440.4,126.1 442.7,127.2 448.3,140.0 446.0,138.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"473.9,154.5 471.7,155.6 471.7,156.9 473.9,155.8\" fill=\"#58798f\"><\/polygon><polygon points=\"458.2,148.9 471.7,155.6 471.7,156.9 458.2,150.2\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"460.5,147.8 473.9,154.5 471.7,155.6 458.2,148.9\" fill=\"#b8cad3\"><\/polygon><path d=\"M460.7 141.1 L471.9 146.7\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"461.7,136.7 463.9,137.8 469.5,150.6 467.3,149.5\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M537.0 130.1 L537.0 116.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M542.6 120.3 L531.4 125.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"545.1,128.2 531.7,134.9 531.7,136.2 545.1,129.5\" fill=\"#426881\"><\/polygon><polygon points=\"529.5,133.8 531.7,134.9 531.7,136.2 529.5,135.1\" fill=\"#63869d\"><\/polygon><polygon points=\"542.9,127.1 545.1,128.2 531.7,134.9 529.5,133.8\" fill=\"#9ab5c4\"><\/polygon><path d=\"M515.7 140.8 L515.7 126.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M521.3 131.0 L510.1 136.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"523.9,138.8 510.4,145.5 510.4,146.8 523.9,140.1\" fill=\"#426881\"><\/polygon><polygon points=\"508.2,144.4 510.4,145.5 510.4,146.8 508.2,145.7\" fill=\"#63869d\"><\/polygon><polygon points=\"521.6,137.7 523.9,138.8 510.4,145.5 508.2,144.4\" fill=\"#9ab5c4\"><\/polygon><path d=\"M494.4 151.4 L494.4 137.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M500.0 141.6 L488.8 147.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"502.6,149.5 489.1,156.2 489.1,157.5 502.6,150.8\" fill=\"#426881\"><\/polygon><polygon points=\"486.9,155.1 489.1,156.2 489.1,157.5 486.9,156.4\" fill=\"#63869d\"><\/polygon><polygon points=\"500.3,148.3 502.6,149.5 489.1,156.2 486.9,155.1\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"410.1,98.6 407.8,99.7 407.8,101.0 410.1,99.9\" fill=\"#58798f\"><\/polygon><polygon points=\"394.4,93.0 407.8,99.7 407.8,101.0 394.4,94.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"396.6,91.9 410.1,98.6 407.8,99.7 394.4,93.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M396.8 85.2 L408.0 90.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"397.9,80.8 400.1,81.9 405.7,94.7 403.5,93.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"431.3,109.2 429.1,110.3 429.1,111.6 431.3,110.5\" fill=\"#58798f\"><\/polygon><polygon points=\"415.7,103.6 429.1,110.3 429.1,111.6 415.7,104.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"417.9,102.5 431.3,109.2 429.1,110.3 415.7,103.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M418.1 95.8 L429.3 101.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"419.1,91.4 421.4,92.6 427.0,105.4 424.7,104.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"452.6,119.9 450.4,121.0 450.4,122.3 452.6,121.2\" fill=\"#58798f\"><\/polygon><polygon points=\"436.9,114.3 450.4,121.0 450.4,122.3 436.9,115.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"439.2,113.1 452.6,119.9 450.4,121.0 436.9,114.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M439.4 106.5 L450.6 112.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"440.4,102.1 442.7,103.2 448.3,116.0 446.0,114.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"473.9,130.5 471.7,131.6 471.7,132.9 473.9,131.8\" fill=\"#58798f\"><\/polygon><polygon points=\"458.2,124.9 471.7,131.6 471.7,132.9 458.2,126.2\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"460.5,123.8 473.9,130.5 471.7,131.6 458.2,124.9\" fill=\"#b8cad3\"><\/polygon><path d=\"M460.7 117.1 L471.9 122.7\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"461.7,112.7 463.9,113.8 469.5,126.6 467.3,125.5\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M537.0 106.1 L537.0 92.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M542.6 96.3 L531.4 101.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"545.1,104.2 531.7,110.9 531.7,112.2 545.1,105.5\" fill=\"#426881\"><\/polygon><polygon points=\"529.5,109.8 531.7,110.9 531.7,112.2 529.5,111.1\" fill=\"#63869d\"><\/polygon><polygon points=\"542.9,103.1 545.1,104.2 531.7,110.9 529.5,109.8\" fill=\"#9ab5c4\"><\/polygon><path d=\"M515.7 116.8 L515.7 102.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M521.3 107.0 L510.1 112.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"523.9,114.8 510.4,121.5 510.4,122.8 523.9,116.1\" fill=\"#426881\"><\/polygon><polygon points=\"508.2,120.4 510.4,121.5 510.4,122.8 508.2,121.7\" fill=\"#63869d\"><\/polygon><polygon points=\"521.6,113.7 523.9,114.8 510.4,121.5 508.2,120.4\" fill=\"#9ab5c4\"><\/polygon><path d=\"M494.4 127.4 L494.4 113.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M500.0 117.6 L488.8 123.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"502.6,125.5 489.1,132.2 489.1,133.5 502.6,126.8\" fill=\"#426881\"><\/polygon><polygon points=\"486.9,131.1 489.1,132.2 489.1,133.5 486.9,132.4\" fill=\"#63869d\"><\/polygon><polygon points=\"500.3,124.3 502.6,125.5 489.1,132.2 486.9,131.1\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"422.6,169.2 430.4,173.1 430.4,153.1 422.6,149.2\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"423.5,161.8 429.1,164.6 429.1,153.6 423.5,150.8\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M427.8 167.2 L427.8 162.2\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"432.7,174.2 440.5,178.1 440.5,158.1 432.7,154.2\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"433.6,166.9 439.2,169.7 439.2,158.7 433.6,155.9\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M437.8 172.2 L437.8 167.2\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"438.4,190.7 435.0,192.4 435.0,193.4 438.4,191.7\" fill=\"#466477\"><\/polygon><polygon points=\"408.2,178.9 435.0,192.4 435.0,193.4 408.2,179.9\" fill=\"#688496\"><\/polygon><polygon points=\"411.5,177.2 438.4,190.7 435.0,192.4 408.2,178.9\" fill=\"#a4b5be\"><\/polygon><polygon points=\"435.0,191.4 431.7,193.0 431.7,194.0 435.0,192.4\" fill=\"#466477\"><\/polygon><polygon points=\"404.8,179.6 431.7,193.0 431.7,194.0 404.8,180.6\" fill=\"#688496\"><\/polygon><polygon points=\"408.2,177.9 435.0,191.4 431.7,193.0 404.8,179.6\" fill=\"#a4b5be\"><\/polygon><polygon points=\"431.7,192.0 428.3,193.7 428.3,194.7 431.7,193.0\" fill=\"#466477\"><\/polygon><polygon points=\"401.4,180.3 428.3,193.7 428.3,194.7 401.4,181.3\" fill=\"#688496\"><\/polygon><polygon points=\"404.8,178.6 431.7,192.0 428.3,193.7 401.4,180.3\" fill=\"#a4b5be\"><\/polygon><path d=\"M419.4 149.3 L408.2 147.9\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><path d=\"M446.2 162.8 L435.0 161.4\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><polygon points=\"479.8,38.8 465.3,46.1 465.3,51.1 479.8,43.8\" fill=\"#506f83\"><\/polygon><polygon points=\"446.2,36.6 465.3,46.1 465.3,51.1 446.2,41.6\" fill=\"#7896a6\"><\/polygon><polygon points=\"460.8,29.3 479.8,38.8 465.3,46.1 446.2,36.6\" fill=\"#bacbd2\"><\/polygon><path d=\"M463.0 31.4 L451.8 37.0\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M466.4 33.1 L455.2 38.7\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M469.8 34.8 L458.6 40.4\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M473.1 36.5 L461.9 42.1\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M458.6 27.6 L395.8 59.0\" fill=\"none\" stroke=\"#c5d8df\" stroke-width=\"1\"><\/path><path d=\"M543.7 70.2 L481.0 101.5\" fill=\"none\" stroke=\"#c5d8df\" stroke-width=\"1\"><\/path><\/g><g class=\"building-piece\" data-layer=\"5.5\"><g transform=\"translate(432.8 117.5) skewY(26.565)\"><rect x=\"-36\" y=\"-9\" width=\"72\" height=\"18\" rx=\"2\" fill=\"#172b3a\" stroke=\"#aecbda\" stroke-width=\".6\"><\/rect><text text-anchor=\"middle\" y=\"3\" fill=\"#e3f1fa\" font-family=\"sans-serif\" font-size=\"9\" font-weight=\"700\" letter-spacing=\"1\">\u041c\u042d\u0420\u0418\u042f<\/text><\/g><\/g><g class=\"building-piece\" data-layer=\"5.9\"><polygon points=\"385.8,149.5 479.8,196.6 479.8,195.4 385.8,148.3\" fill=\"#b7dafa\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"6\"><polygon points=\"481.2,47.8 479.8,48.5 479.8,76.5 481.2,75.8\" fill=\"#738c9d\"><\/polygon><polygon points=\"478.5,47.8 479.8,48.5 479.8,76.5 478.5,75.8\" fill=\"#9aaebb\"><\/polygon><polygon points=\"479.8,47.2 481.2,47.8 479.8,48.5 478.5,47.8\" fill=\"#d2d9dc\"><\/polygon><g data-ambient=\"flag\"><polygon points=\"479.8,49.3 502.2,60.5 502.2,72.5 479.8,61.3\" fill=\"#99c6df\"><\/polygon><\/g><path d=\"M402.6 167.9 L402.6 159.9 L412.6 150.8\" fill=\"none\" stroke=\"#c1d2dc\" stroke-width=\"1\"><\/path><path d=\"M435.0 184.1 L435.0 176.1 L445.1 167.1\" fill=\"none\" stroke=\"#c1d2dc\" stroke-width=\"1\"><\/path><\/g><g class=\"building-piece crafted-detail\" data-layer=\"5.7\"><polygon points=\"467.5,24.7 422.7,47.1 422.7,49.1 467.5,26.7\" fill=\"#4a6c80\"><\/polygon><polygon points=\"416.0,43.7 422.7,47.1 422.7,49.1 416.0,45.7\" fill=\"#718c99\"><\/polygon><polygon points=\"460.8,21.3 467.5,24.7 422.7,47.1 416.0,43.7\" fill=\"#9aadb3\"><\/polygon><polygon points=\"461.9,22.4 455.2,25.7 455.2,29.7 461.9,26.4\" fill=\"#46664f\"><\/polygon><polygon points=\"450.7,23.5 455.2,25.7 455.2,29.7 450.7,27.5\" fill=\"#638568\"><\/polygon><polygon points=\"457.4,20.1 461.9,22.4 455.2,25.7 450.7,23.5\" fill=\"#88a189\"><\/polygon><polygon points=\"449.6,28.5 442.9,31.9 442.9,35.9 449.6,32.5\" fill=\"#46664f\"><\/polygon><polygon points=\"438.4,29.6 442.9,31.9 442.9,35.9 438.4,33.6\" fill=\"#638568\"><\/polygon><polygon points=\"445.1,26.3 449.6,28.5 442.9,31.9 438.4,29.6\" fill=\"#88a189\"><\/polygon><polygon points=\"437.3,34.7 430.6,38.0 430.6,42.0 437.3,38.7\" fill=\"#46664f\"><\/polygon><polygon points=\"426.1,35.8 430.6,38.0 430.6,42.0 426.1,39.8\" fill=\"#638568\"><\/polygon><polygon points=\"432.8,32.4 437.3,34.7 430.6,38.0 426.1,35.8\" fill=\"#88a189\"><\/polygon><polygon points=\"540.3,61.1 495.5,83.5 495.5,85.5 540.3,63.1\" fill=\"#4a6c80\"><\/polygon><polygon points=\"488.8,80.1 495.5,83.5 495.5,85.5 488.8,82.1\" fill=\"#718c99\"><\/polygon><polygon points=\"533.6,57.7 540.3,61.1 495.5,83.5 488.8,80.1\" fill=\"#9aadb3\"><\/polygon><polygon points=\"534.7,58.8 528.0,62.1 528.0,66.1 534.7,62.8\" fill=\"#46664f\"><\/polygon><polygon points=\"523.5,59.9 528.0,62.1 528.0,66.1 523.5,63.9\" fill=\"#638568\"><\/polygon><polygon points=\"530.2,56.5 534.7,58.8 528.0,62.1 523.5,59.9\" fill=\"#88a189\"><\/polygon><polygon points=\"522.4,64.9 515.7,68.3 515.7,72.3 522.4,68.9\" fill=\"#46664f\"><\/polygon><polygon points=\"511.2,66.0 515.7,68.3 515.7,72.3 511.2,70.0\" fill=\"#638568\"><\/polygon><polygon points=\"517.9,62.7 522.4,64.9 515.7,68.3 511.2,66.0\" fill=\"#88a189\"><\/polygon><polygon points=\"510.1,71.1 503.4,74.4 503.4,78.4 510.1,75.1\" fill=\"#46664f\"><\/polygon><polygon points=\"498.9,72.2 503.4,74.4 503.4,78.4 498.9,76.2\" fill=\"#638568\"><\/polygon><polygon points=\"505.6,68.8 510.1,71.1 503.4,74.4 498.9,72.2\" fill=\"#88a189\"><\/polygon><polygon points=\"494.4,49.3 483.2,54.9 483.2,56.9 494.4,51.3\" fill=\"#33566e\"><\/polygon><polygon points=\"455.2,40.9 483.2,54.9 483.2,56.9 455.2,42.9\" fill=\"#4b7086\"><\/polygon><polygon points=\"466.4,35.3 494.4,49.3 483.2,54.9 455.2,40.9\" fill=\"#799cab\"><\/polygon><path d=\"M468.6 36.2 L457.4 41.8\" fill=\"none\" stroke=\"#c4e0e8\" stroke-width=\"0.55\"><\/path><path d=\"M476.5 40.2 L465.3 45.8\" fill=\"none\" stroke=\"#c4e0e8\" stroke-width=\"0.55\"><\/path><path d=\"M484.3 44.1 L473.1 49.7\" fill=\"none\" stroke=\"#c4e0e8\" stroke-width=\"0.55\"><\/path><polygon points=\"476.5,58.3 465.3,63.9 465.3,65.9 476.5,60.3\" fill=\"#33566e\"><\/polygon><polygon points=\"437.3,49.9 465.3,63.9 465.3,65.9 437.3,51.9\" fill=\"#4b7086\"><\/polygon><polygon points=\"448.5,44.3 476.5,58.3 465.3,63.9 437.3,49.9\" fill=\"#799cab\"><\/polygon><path d=\"M450.7 45.2 L439.5 50.8\" fill=\"none\" stroke=\"#c4e0e8\" stroke-width=\"0.55\"><\/path><path d=\"M458.6 49.1 L447.4 54.7\" fill=\"none\" stroke=\"#c4e0e8\" stroke-width=\"0.55\"><\/path><path d=\"M466.4 53.0 L455.2 58.6\" fill=\"none\" stroke=\"#c4e0e8\" stroke-width=\"0.55\"><\/path><\/g><\/g><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"-161\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"-1\"><g data-ambient=\"person\" data-index=\"0\"><polygon points=\"262.6,182.0 279.4,190.4 271.5,198.8 250.2,188.2\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"267.0,176.5 261.4,179.3 261.4,188.3 267.0,185.5\" fill=\"#2a4057\"><\/polygon><polygon points=\"258.1,177.6 261.4,179.3 261.4,188.3 258.1,186.6\" fill=\"#3e5269\"><\/polygon><polygon points=\"263.7,174.8 267.0,176.5 261.4,179.3 258.1,177.6\" fill=\"#536b82\"><\/polygon><polygon points=\"265.9,185.1 260.3,187.9 260.3,189.9 265.9,187.1\" fill=\"#1d2c40\"><\/polygon><polygon points=\"257.0,186.2 260.3,187.9 260.3,189.9 257.0,188.2\" fill=\"#2a394e\"><\/polygon><polygon points=\"262.6,183.4 265.9,185.1 260.3,187.9 257.0,186.2\" fill=\"#435165\"><\/polygon><polygon points=\"272.6,179.3 267.0,182.1 267.0,191.1 272.6,188.3\" fill=\"#2a4057\"><\/polygon><polygon points=\"263.7,180.4 267.0,182.1 267.0,191.1 263.7,189.4\" fill=\"#3e5269\"><\/polygon><polygon points=\"269.3,177.6 272.6,179.3 267.0,182.1 263.7,180.4\" fill=\"#536b82\"><\/polygon><polygon points=\"271.5,187.9 265.9,190.7 265.9,192.7 271.5,189.9\" fill=\"#1d2c40\"><\/polygon><polygon points=\"262.6,189.0 265.9,190.7 265.9,192.7 262.6,191.0\" fill=\"#2a394e\"><\/polygon><polygon points=\"268.2,186.2 271.5,187.9 265.9,190.7 262.6,189.0\" fill=\"#435165\"><\/polygon><polygon points=\"274.3,169.6 267.6,173.0 267.6,183.0 274.3,179.6\" fill=\"#37566e\"><\/polygon><polygon points=\"256.4,167.4 267.6,173.0 267.6,183.0 256.4,177.4\" fill=\"#4b7899\"><\/polygon><polygon points=\"263.1,164.0 274.3,169.6 267.6,173.0 256.4,167.4\" fill=\"#7fabc8\"><\/polygon><polygon points=\"262.6,166.3 257.0,169.1 257.0,176.1 262.6,173.3\" fill=\"#37566e\"><\/polygon><polygon points=\"253.6,167.4 257.0,169.1 257.0,176.1 253.6,174.4\" fill=\"#4b7899\"><\/polygon><polygon points=\"259.2,164.6 262.6,166.3 257.0,169.1 253.6,167.4\" fill=\"#7fabc8\"><\/polygon><polygon points=\"262.4,173.3 258.0,175.6 258.0,178.6 262.4,176.3\" fill=\"#967664\"><\/polygon><polygon points=\"254.6,173.9 258.0,175.6 258.0,178.6 254.6,176.9\" fill=\"#bb947e\"><\/polygon><polygon points=\"259.1,171.7 262.4,173.3 258.0,175.6 254.6,173.9\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"277.1,173.6 271.5,176.4 271.5,183.4 277.1,180.6\" fill=\"#37566e\"><\/polygon><polygon points=\"268.2,174.7 271.5,176.4 271.5,183.4 268.2,181.7\" fill=\"#4b7899\"><\/polygon><polygon points=\"273.8,171.9 277.1,173.6 271.5,176.4 268.2,174.7\" fill=\"#7fabc8\"><\/polygon><polygon points=\"277.0,180.6 272.5,182.9 272.5,185.9 277.0,183.6\" fill=\"#967664\"><\/polygon><polygon points=\"269.2,181.2 272.5,182.9 272.5,185.9 269.2,184.2\" fill=\"#bb947e\"><\/polygon><polygon points=\"273.6,178.9 277.0,180.6 272.5,182.9 269.2,181.2\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"272.9,161.6 265.0,165.6 265.0,172.6 272.9,168.6\" fill=\"#a57d66\"><\/polygon><polygon points=\"257.2,161.6 265.0,165.6 265.0,172.6 257.2,168.6\" fill=\"#cba68b\"><\/polygon><polygon points=\"265.0,157.7 272.9,161.6 265.0,165.6 257.2,161.6\" fill=\"#dfbea2\"><\/polygon><polygon points=\"273.3,160.8 265.0,165.0 265.0,166.8 273.3,162.6\" fill=\"#302e2a\"><\/polygon><polygon points=\"256.7,160.8 265.0,165.0 265.0,166.8 256.7,162.6\" fill=\"#42392f\"><\/polygon><polygon points=\"265.0,156.7 273.3,160.8 265.0,165.0 256.7,160.8\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"-159\"><polygon points=\"581.8,185.2 557.1,197.5 557.1,200.5 581.8,188.2\" fill=\"#2e4848\"><\/polygon><polygon points=\"532.5,185.2 557.1,197.5 557.1,200.5 532.5,188.2\" fill=\"#405f58\"><\/polygon><polygon points=\"557.1,172.9 581.8,185.2 557.1,197.5 532.5,185.2\" fill=\"#647c70\"><\/polygon><polygon points=\"560.5,167.6 557.1,169.3 557.1,186.3 560.5,184.6\" fill=\"#544631\"><\/polygon><polygon points=\"553.8,167.6 557.1,169.3 557.1,186.3 553.8,184.6\" fill=\"#756149\"><\/polygon><polygon points=\"557.1,166.0 560.5,167.6 557.1,169.3 553.8,167.6\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"582.9,153.6 557.1,166.5 557.1,182.5 582.9,169.6\" fill=\"#416a55\"><\/polygon><polygon points=\"531.4,153.6 557.1,166.5 557.1,182.5 531.4,169.6\" fill=\"#63866c\"><\/polygon><polygon points=\"557.1,140.8 582.9,153.6 557.1,166.5 531.4,153.6\" fill=\"#8da98b\"><\/polygon><polygon points=\"576.2,141.6 557.1,151.2 557.1,163.2 576.2,153.6\" fill=\"#416a55\"><\/polygon><polygon points=\"538.1,141.6 557.1,151.2 557.1,163.2 538.1,153.6\" fill=\"#63866c\"><\/polygon><polygon points=\"557.1,132.1 576.2,141.6 557.1,151.2 538.1,141.6\" fill=\"#8da98b\"><\/polygon><polygon points=\"569.4,134.6 557.1,140.8 557.1,147.8 569.4,141.6\" fill=\"#416a55\"><\/polygon><polygon points=\"544.8,134.6 557.1,140.8 557.1,147.8 544.8,141.6\" fill=\"#63866c\"><\/polygon><polygon points=\"557.1,128.5 569.4,134.6 557.1,140.8 544.8,134.6\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object streetlamp\" data-rise=\"\" data-depth=\"-155\"><polygon points=\"276.0,186.8 270.4,189.6 270.4,191.6 276.0,188.8\" fill=\"#354c60\"><\/polygon><polygon points=\"264.8,186.8 270.4,189.6 270.4,191.6 264.8,188.8\" fill=\"#536a7b\"><\/polygon><polygon points=\"270.4,184.0 276.0,186.8 270.4,189.6 264.8,186.8\" fill=\"#8194a3\"><\/polygon><polygon points=\"272.2,154.1 270.4,155.0 270.4,188.0 272.2,187.1\" fill=\"#4f6a81\"><\/polygon><polygon points=\"268.6,154.1 270.4,155.0 270.4,188.0 268.6,187.1\" fill=\"#728b9e\"><\/polygon><polygon points=\"270.4,153.2 272.2,154.1 270.4,155.0 268.6,154.1\" fill=\"#a3b6c4\"><\/polygon><polygon points=\"279.4,152.3 270.4,156.8 270.4,158.8 279.4,154.3\" fill=\"#658799\"><\/polygon><polygon points=\"261.4,152.3 270.4,156.8 270.4,158.8 261.4,154.3\" fill=\"#9bb8c4\"><\/polygon><polygon points=\"270.4,147.8 279.4,152.3 270.4,156.8 261.4,152.3\" fill=\"#d6e0dc\"><\/polygon><circle class=\"lamp-glow\" cx=\"270.4\" cy=\"152.2\" r=\"5\" fill=\"#d7e4bc\" opacity=\".4\"><\/circle><\/g><g class=\"city-object vehicle\" data-rise=\"\" data-depth=\"-118\"><g data-life=\"car\"><g data-ambient=\"car\"><polygon points=\"366.7,205.0 353.3,211.7 353.3,217.7 366.7,211.0\" fill=\"#49667d\"><\/polygon><polygon points=\"326.4,198.2 353.3,211.7 353.3,217.7 326.4,204.2\" fill=\"#738b9d\"><\/polygon><polygon points=\"339.8,191.5 366.7,205.0 353.3,211.7 326.4,198.2\" fill=\"#b1bfc8\"><\/polygon><polygon points=\"358.9,197.2 347.7,202.8 347.7,207.8 358.9,202.2\" fill=\"#355873\"><\/polygon><polygon points=\"334.2,196.0 347.7,202.8 347.7,207.8 334.2,201.0\" fill=\"#486d86\"><\/polygon><polygon points=\"345.4,190.4 358.9,197.2 347.7,202.8 334.2,196.0\" fill=\"#92b2c2\"><\/polygon><polygon points=\"347.7,199.4 345.4,200.6 345.4,204.6 347.7,203.4\" fill=\"#101e2d\"><\/polygon><polygon points=\"341.0,198.3 345.4,200.6 345.4,204.6 341.0,202.3\" fill=\"#1b2a36\"><\/polygon><polygon points=\"343.2,197.2 347.7,199.4 345.4,200.6 341.0,198.3\" fill=\"#253744\"><\/polygon><polygon points=\"335.4,205.6 333.1,206.7 333.1,210.7 335.4,209.6\" fill=\"#101e2d\"><\/polygon><polygon points=\"328.6,204.5 333.1,206.7 333.1,210.7 328.6,208.5\" fill=\"#1b2a36\"><\/polygon><polygon points=\"330.9,203.4 335.4,205.6 333.1,206.7 328.6,204.5\" fill=\"#253744\"><\/polygon><polygon points=\"364.5,207.8 362.2,209.0 362.2,213.0 364.5,211.8\" fill=\"#101e2d\"><\/polygon><polygon points=\"357.8,206.7 362.2,209.0 362.2,213.0 357.8,210.7\" fill=\"#1b2a36\"><\/polygon><polygon points=\"360.0,205.6 364.5,207.8 362.2,209.0 357.8,206.7\" fill=\"#253744\"><\/polygon><polygon points=\"352.2,214.0 349.9,215.1 349.9,219.1 352.2,218.0\" fill=\"#101e2d\"><\/polygon><polygon points=\"345.4,212.9 349.9,215.1 349.9,219.1 345.4,216.9\" fill=\"#1b2a36\"><\/polygon><polygon points=\"347.7,211.8 352.2,214.0 349.9,215.1 345.4,212.9\" fill=\"#253744\"><\/polygon><\/g><\/g><\/g><g class=\"city-object streetlamp\" data-rise=\"\" data-depth=\"-103\"><polygon points=\"677.0,215.9 671.4,218.7 671.4,220.7 677.0,217.9\" fill=\"#354c60\"><\/polygon><polygon points=\"665.8,215.9 671.4,218.7 671.4,220.7 665.8,217.9\" fill=\"#536a7b\"><\/polygon><polygon points=\"671.4,213.1 677.0,215.9 671.4,218.7 665.8,215.9\" fill=\"#8194a3\"><\/polygon><polygon points=\"673.2,183.2 671.4,184.1 671.4,217.1 673.2,216.2\" fill=\"#4f6a81\"><\/polygon><polygon points=\"669.6,183.2 671.4,184.1 671.4,217.1 669.6,216.2\" fill=\"#728b9e\"><\/polygon><polygon points=\"671.4,182.3 673.2,183.2 671.4,184.1 669.6,183.2\" fill=\"#a3b6c4\"><\/polygon><polygon points=\"680.3,181.4 671.4,185.9 671.4,187.9 680.3,183.4\" fill=\"#658799\"><\/polygon><polygon points=\"662.4,181.4 671.4,185.9 671.4,187.9 662.4,183.4\" fill=\"#9bb8c4\"><\/polygon><polygon points=\"671.4,177.0 680.3,181.4 671.4,185.9 662.4,181.4\" fill=\"#d6e0dc\"><\/polygon><circle class=\"lamp-glow\" cx=\"671.4\" cy=\"181.3\" r=\"5\" fill=\"#d7e4bc\" opacity=\".4\"><\/circle><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"-33\"><polygon points=\"153.9,255.8 129.3,268.1 129.3,271.1 153.9,258.8\" fill=\"#2e4848\"><\/polygon><polygon points=\"104.6,255.8 129.3,268.1 129.3,271.1 104.6,258.8\" fill=\"#405f58\"><\/polygon><polygon points=\"129.3,243.4 153.9,255.8 129.3,268.1 104.6,255.8\" fill=\"#647c70\"><\/polygon><polygon points=\"132.6,238.2 129.3,239.9 129.3,256.9 132.6,255.2\" fill=\"#544631\"><\/polygon><polygon points=\"125.9,238.2 129.3,239.9 129.3,256.9 125.9,255.2\" fill=\"#756149\"><\/polygon><polygon points=\"129.3,236.5 132.6,238.2 129.3,239.9 125.9,238.2\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"155.0,224.2 129.3,237.1 129.3,253.1 155.0,240.2\" fill=\"#416a55\"><\/polygon><polygon points=\"103.5,224.2 129.3,237.1 129.3,253.1 103.5,240.2\" fill=\"#63866c\"><\/polygon><polygon points=\"129.3,211.3 155.0,224.2 129.3,237.1 103.5,224.2\" fill=\"#8da98b\"><\/polygon><polygon points=\"148.3,212.2 129.3,221.7 129.3,233.7 148.3,224.2\" fill=\"#416a55\"><\/polygon><polygon points=\"110.2,212.2 129.3,221.7 129.3,233.7 110.2,224.2\" fill=\"#63866c\"><\/polygon><polygon points=\"129.3,202.7 148.3,212.2 129.3,221.7 110.2,212.2\" fill=\"#8da98b\"><\/polygon><polygon points=\"141.6,205.2 129.3,211.4 129.3,218.4 141.6,212.2\" fill=\"#416a55\"><\/polygon><polygon points=\"117.0,205.2 129.3,211.4 129.3,218.4 117.0,212.2\" fill=\"#63866c\"><\/polygon><polygon points=\"129.3,199.0 141.6,205.2 129.3,211.4 117.0,205.2\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object streetlamp\" data-rise=\"\" data-depth=\"-32\"><polygon points=\"138.2,255.6 132.6,258.4 132.6,260.4 138.2,257.6\" fill=\"#354c60\"><\/polygon><polygon points=\"127.0,255.6 132.6,258.4 132.6,260.4 127.0,257.6\" fill=\"#536a7b\"><\/polygon><polygon points=\"132.6,252.8 138.2,255.6 132.6,258.4 127.0,255.6\" fill=\"#8194a3\"><\/polygon><polygon points=\"134.4,223.0 132.6,223.9 132.6,256.9 134.4,256.0\" fill=\"#4f6a81\"><\/polygon><polygon points=\"130.8,223.0 132.6,223.9 132.6,256.9 130.8,256.0\" fill=\"#728b9e\"><\/polygon><polygon points=\"132.6,222.1 134.4,223.0 132.6,223.9 130.8,223.0\" fill=\"#a3b6c4\"><\/polygon><polygon points=\"141.6,221.2 132.6,225.7 132.6,227.7 141.6,223.2\" fill=\"#658799\"><\/polygon><polygon points=\"123.7,221.2 132.6,225.7 132.6,227.7 123.7,223.2\" fill=\"#9bb8c4\"><\/polygon><polygon points=\"132.6,216.7 141.6,221.2 132.6,225.7 123.7,221.2\" fill=\"#d6e0dc\"><\/polygon><circle class=\"lamp-glow\" cx=\"132.6\" cy=\"221.1\" r=\"5\" fill=\"#d7e4bc\" opacity=\".4\"><\/circle><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"-30\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"1\"><g data-ambient=\"person\" data-index=\"1\"><polygon points=\"122.6,255.4 139.4,263.8 131.5,272.2 110.2,261.6\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"127.0,249.9 121.4,252.7 121.4,261.7 127.0,258.9\" fill=\"#2a4057\"><\/polygon><polygon points=\"118.1,251.0 121.4,252.7 121.4,261.7 118.1,260.0\" fill=\"#3e5269\"><\/polygon><polygon points=\"123.7,248.2 127.0,249.9 121.4,252.7 118.1,251.0\" fill=\"#536b82\"><\/polygon><polygon points=\"125.9,258.4 120.3,261.2 120.3,263.2 125.9,260.4\" fill=\"#1d2c40\"><\/polygon><polygon points=\"117.0,259.6 120.3,261.2 120.3,263.2 117.0,261.6\" fill=\"#2a394e\"><\/polygon><polygon points=\"122.6,256.8 125.9,258.4 120.3,261.2 117.0,259.6\" fill=\"#435165\"><\/polygon><polygon points=\"132.6,252.7 127.0,255.5 127.0,264.5 132.6,261.7\" fill=\"#2a4057\"><\/polygon><polygon points=\"123.7,253.8 127.0,255.5 127.0,264.5 123.7,262.8\" fill=\"#3e5269\"><\/polygon><polygon points=\"129.3,251.0 132.6,252.7 127.0,255.5 123.7,253.8\" fill=\"#536b82\"><\/polygon><polygon points=\"131.5,261.2 125.9,264.0 125.9,266.0 131.5,263.2\" fill=\"#1d2c40\"><\/polygon><polygon points=\"122.6,262.4 125.9,264.0 125.9,266.0 122.6,264.4\" fill=\"#2a394e\"><\/polygon><polygon points=\"128.2,259.6 131.5,261.2 125.9,264.0 122.6,262.4\" fill=\"#435165\"><\/polygon><polygon points=\"134.3,243.0 127.6,246.3 127.6,256.3 134.3,253.0\" fill=\"#37566e\"><\/polygon><polygon points=\"116.4,240.7 127.6,246.3 127.6,256.3 116.4,250.7\" fill=\"#4b7899\"><\/polygon><polygon points=\"123.1,237.4 134.3,243.0 127.6,246.3 116.4,240.7\" fill=\"#7fabc8\"><\/polygon><polygon points=\"122.6,239.6 117.0,242.4 117.0,249.4 122.6,246.6\" fill=\"#37566e\"><\/polygon><polygon points=\"113.6,240.8 117.0,242.4 117.0,249.4 113.6,247.8\" fill=\"#4b7899\"><\/polygon><polygon points=\"119.2,238.0 122.6,239.6 117.0,242.4 113.6,240.8\" fill=\"#7fabc8\"><\/polygon><polygon points=\"122.4,246.7 118.0,248.9 118.0,251.9 122.4,249.7\" fill=\"#967664\"><\/polygon><polygon points=\"114.6,247.3 118.0,248.9 118.0,251.9 114.6,250.3\" fill=\"#bb947e\"><\/polygon><polygon points=\"119.1,245.0 122.4,246.7 118.0,248.9 114.6,247.3\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"137.1,246.9 131.5,249.7 131.5,256.7 137.1,253.9\" fill=\"#37566e\"><\/polygon><polygon points=\"128.2,248.0 131.5,249.7 131.5,256.7 128.2,255.0\" fill=\"#4b7899\"><\/polygon><polygon points=\"133.8,245.2 137.1,246.9 131.5,249.7 128.2,248.0\" fill=\"#7fabc8\"><\/polygon><polygon points=\"137.0,254.0 132.5,256.2 132.5,259.2 137.0,257.0\" fill=\"#967664\"><\/polygon><polygon points=\"129.2,254.5 132.5,256.2 132.5,259.2 129.2,257.5\" fill=\"#bb947e\"><\/polygon><polygon points=\"133.6,252.3 137.0,254.0 132.5,256.2 129.2,254.5\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"132.9,235.0 125.0,238.9 125.0,245.9 132.9,242.0\" fill=\"#a57d66\"><\/polygon><polygon points=\"117.2,235.0 125.0,238.9 125.0,245.9 117.2,242.0\" fill=\"#cba68b\"><\/polygon><polygon points=\"125.0,231.1 132.9,235.0 125.0,238.9 117.2,235.0\" fill=\"#dfbea2\"><\/polygon><polygon points=\"133.3,234.2 125.0,238.4 125.0,240.2 133.3,236.0\" fill=\"#302e2a\"><\/polygon><polygon points=\"116.7,234.2 125.0,238.4 125.0,240.2 116.7,236.0\" fill=\"#42392f\"><\/polygon><polygon points=\"125.0,230.1 133.3,234.2 125.0,238.4 116.7,234.2\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object streetlamp\" data-rise=\"\" data-depth=\"-17\"><polygon points=\"430.6,264.0 425.0,266.8 425.0,268.8 430.6,266.0\" fill=\"#354c60\"><\/polygon><polygon points=\"419.4,264.0 425.0,266.8 425.0,268.8 419.4,266.0\" fill=\"#536a7b\"><\/polygon><polygon points=\"425.0,261.2 430.6,264.0 425.0,266.8 419.4,264.0\" fill=\"#8194a3\"><\/polygon><polygon points=\"426.8,231.4 425.0,232.3 425.0,265.3 426.8,264.4\" fill=\"#4f6a81\"><\/polygon><polygon points=\"423.2,231.4 425.0,232.3 425.0,265.3 423.2,264.4\" fill=\"#728b9e\"><\/polygon><polygon points=\"425.0,230.5 426.8,231.4 425.0,232.3 423.2,231.4\" fill=\"#a3b6c4\"><\/polygon><polygon points=\"433.9,229.6 425.0,234.1 425.0,236.1 433.9,231.6\" fill=\"#658799\"><\/polygon><polygon points=\"416.0,229.6 425.0,234.1 425.0,236.1 416.0,231.6\" fill=\"#9bb8c4\"><\/polygon><polygon points=\"425.0,225.1 433.9,229.6 425.0,234.1 416.0,229.6\" fill=\"#d6e0dc\"><\/polygon><circle class=\"lamp-glow\" cx=\"425.0\" cy=\"229.5\" r=\"5\" fill=\"#d7e4bc\" opacity=\".4\"><\/circle><\/g><g class=\"city-object district\" data-district=\"2\" data-rise=\"\" data-depth=\"-11\"><g id=\"bwrp-model-store\"><g class=\"building-piece\" data-layer=\"0\"><polygon points=\"259.2,216.2 379.0,276.1 292.8,323.7 168.5,261.6\" fill=\"#0a1421\" opacity=\".27\"><\/polygon><polygon points=\"366.7,264.1 287.2,303.8 287.2,310.8 366.7,271.1\" fill=\"#354b5e\"><\/polygon><polygon points=\"179.7,250.1 287.2,303.8 287.2,310.8 179.7,257.1\" fill=\"#4e6474\"><\/polygon><polygon points=\"259.2,210.3 366.7,264.1 287.2,303.8 179.7,250.1\" fill=\"#81939f\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"0.7\"><polygon points=\"357.8,245.7 287.2,281.0 287.2,299.4 357.8,264.1\" fill=\"#756950\"><\/polygon><polygon points=\"188.6,231.7 287.2,281.0 287.2,299.4 188.6,250.1\" fill=\"#a18d70\"><\/polygon><polygon points=\"259.2,196.5 357.8,245.7 287.2,281.0 188.6,231.7\" fill=\"#c1b6a0\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"1.5333333333333332\"><polygon points=\"357.8,227.4 287.2,262.7 287.2,281.0 357.8,245.7\" fill=\"#756950\"><\/polygon><polygon points=\"188.6,213.4 287.2,262.7 287.2,281.0 188.6,231.7\" fill=\"#a18d70\"><\/polygon><polygon points=\"259.2,178.1 357.8,227.4 287.2,262.7 188.6,213.4\" fill=\"#c1b6a0\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"2.3666666666666667\"><polygon points=\"357.8,209.1 287.2,244.4 287.2,262.7 357.8,227.4\" fill=\"#756950\"><\/polygon><polygon points=\"188.6,195.1 287.2,244.4 287.2,262.7 188.6,213.4\" fill=\"#a18d70\"><\/polygon><polygon points=\"259.2,159.8 357.8,209.1 287.2,244.4 188.6,195.1\" fill=\"#c1b6a0\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.2\"><polygon points=\"360.0,244.5 287.2,280.9 287.2,282.1 360.0,245.7\" fill=\"#506f85\"><\/polygon><polygon points=\"186.4,230.5 287.2,280.9 287.2,282.1 186.4,231.7\" fill=\"#728d9d\"><\/polygon><polygon points=\"259.2,194.1 360.0,244.5 287.2,280.9 186.4,230.5\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"360.0,226.2 287.2,262.6 287.2,263.8 360.0,227.4\" fill=\"#506f85\"><\/polygon><polygon points=\"186.4,212.2 287.2,262.6 287.2,263.8 186.4,213.4\" fill=\"#728d9d\"><\/polygon><polygon points=\"259.2,175.8 360.0,226.2 287.2,262.6 186.4,212.2\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"188.5,242.1 287.1,291.4 287.1,291.1 188.5,241.8\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><polygon points=\"188.5,230.1 287.1,279.4 287.1,279.1 188.5,229.8\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><polygon points=\"188.5,218.1 287.1,267.4 287.1,267.1 188.5,217.8\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><polygon points=\"188.5,206.1 287.1,255.4 287.1,255.1 188.5,205.8\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.7\"><\/g><g class=\"building-piece\" data-layer=\"4.2\"><polygon points=\"364.5,205.1 287.2,243.7 287.2,247.7 364.5,209.1\" fill=\"#4f6a83\"><\/polygon><polygon points=\"181.9,191.1 287.2,243.7 287.2,247.7 181.9,195.1\" fill=\"#738c9e\"><\/polygon><polygon points=\"259.2,152.4 364.5,205.1 287.2,243.7 181.9,191.1\" fill=\"#b1c4ce\"><\/polygon><polygon points=\"259.2,151.3 366.7,205.1 327.0,207.0 219.4,153.2\" fill=\"#6c8498\"><\/polygon><polygon points=\"179.7,191.1 287.2,244.8 327.0,207.0 219.4,153.2\" fill=\"#425d74\"><\/polygon><polygon points=\"366.7,205.1 287.2,244.8 327.0,207.0\" fill=\"#8d9a9e\"><\/polygon><polygon points=\"188.6,195.6 189.4,196.0 229.2,158.1 228.4,157.7\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"202.1,202.3 202.9,202.7 242.6,164.8 241.8,164.4\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"215.5,209.0 216.3,209.4 256.1,171.5 255.3,171.1\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"229.0,215.7 229.7,216.1 269.5,178.2 268.7,177.8\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"242.4,222.4 243.2,222.8 282.9,185.0 282.2,184.6\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"255.8,229.2 256.6,229.6 296.4,191.7 295.6,191.3\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"269.3,235.9 270.1,236.3 309.8,198.4 309.0,198.0\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"4.9\"><polygon points=\"198.0,239.5 211.5,246.2 211.5,230.2 198.0,223.5\" fill=\"#253c50\"><\/polygon><polygon points=\"198.9,239.1 210.1,244.7 210.1,230.7 198.9,225.1\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"203.8,241.8 204.7,242.2 204.7,228.2 203.8,227.8\" fill=\"#547b91\"><\/polygon><polygon points=\"219.3,250.1 232.8,256.8 232.8,240.8 219.3,234.1\" fill=\"#253c50\"><\/polygon><polygon points=\"220.2,249.8 231.4,255.4 231.4,241.4 220.2,235.8\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"225.0,252.4 225.9,252.8 225.9,238.8 225.0,238.4\" fill=\"#547b91\"><\/polygon><polygon points=\"240.6,260.7 254.0,267.5 254.0,251.5 240.6,244.7\" fill=\"#253c50\"><\/polygon><polygon points=\"241.5,260.4 252.7,266.0 252.7,252.0 241.5,246.4\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"246.3,263.0 247.2,263.5 247.2,249.5 246.3,249.0\" fill=\"#547b91\"><\/polygon><polygon points=\"261.9,271.4 275.3,278.1 275.3,262.1 261.9,255.4\" fill=\"#253c50\"><\/polygon><polygon points=\"262.8,271.0 274.0,276.6 274.0,262.6 262.8,257.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"267.6,273.7 268.5,274.1 268.5,260.1 267.6,259.7\" fill=\"#547b91\"><\/polygon><polygon points=\"348.4,253.5 334.9,260.2 334.9,244.2 348.4,237.5\" fill=\"#22364b\"><\/polygon><polygon points=\"347.5,253.1 336.3,258.7 336.3,244.7 347.5,239.1\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"327.1,264.1 313.6,270.8 313.6,254.8 327.1,248.1\" fill=\"#22364b\"><\/polygon><polygon points=\"326.2,263.8 315.0,269.4 315.0,255.4 326.2,249.8\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"305.8,274.7 292.4,281.5 292.4,265.5 305.8,258.7\" fill=\"#22364b\"><\/polygon><polygon points=\"304.9,274.4 293.7,280.0 293.7,266.0 304.9,260.4\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"198.0,215.5 211.5,222.2 211.5,206.2 198.0,199.5\" fill=\"#253c50\"><\/polygon><polygon points=\"198.9,215.1 210.1,220.7 210.1,206.7 198.9,201.1\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"203.8,217.8 204.7,218.2 204.7,204.2 203.8,203.8\" fill=\"#547b91\"><\/polygon><polygon points=\"219.3,226.1 232.8,232.8 232.8,216.8 219.3,210.1\" fill=\"#253c50\"><\/polygon><polygon points=\"220.2,225.8 231.4,231.4 231.4,217.4 220.2,211.8\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"225.0,228.4 225.9,228.8 225.9,214.8 225.0,214.4\" fill=\"#547b91\"><\/polygon><polygon points=\"240.6,236.7 254.0,243.5 254.0,227.5 240.6,220.7\" fill=\"#253c50\"><\/polygon><polygon points=\"241.5,236.4 252.7,242.0 252.7,228.0 241.5,222.4\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"246.3,239.0 247.2,239.5 247.2,225.5 246.3,225.0\" fill=\"#547b91\"><\/polygon><polygon points=\"261.9,247.4 275.3,254.1 275.3,238.1 261.9,231.4\" fill=\"#253c50\"><\/polygon><polygon points=\"262.8,247.0 274.0,252.6 274.0,238.6 262.8,233.0\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"267.6,249.7 268.5,250.1 268.5,236.1 267.6,235.7\" fill=\"#547b91\"><\/polygon><polygon points=\"348.4,229.5 334.9,236.2 334.9,220.2 348.4,213.5\" fill=\"#22364b\"><\/polygon><polygon points=\"347.5,229.1 336.3,234.7 336.3,220.7 347.5,215.1\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"327.1,240.1 313.6,246.8 313.6,230.8 327.1,224.1\" fill=\"#22364b\"><\/polygon><polygon points=\"326.2,239.8 315.0,245.4 315.0,231.4 326.2,225.8\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"305.8,250.7 292.4,257.5 292.4,241.5 305.8,234.7\" fill=\"#22364b\"><\/polygon><polygon points=\"304.9,250.4 293.7,256.0 293.7,242.0 304.9,236.4\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"5.2\"><polygon points=\"248.0,255.9 246.9,256.4 246.9,281.4 248.0,280.9\" fill=\"#29495f\"><\/polygon><polygon points=\"224.5,245.2 246.9,256.4 246.9,281.4 224.5,270.2\" fill=\"#365c74\"><\/polygon><polygon points=\"225.6,244.7 248.0,255.9 246.9,256.4 224.5,245.2\" fill=\"#7eacbf\"><\/polygon><polygon points=\"250.2,282.0 239.0,287.6 239.0,289.6 250.2,284.0\" fill=\"#4c677c\"><\/polygon><polygon points=\"212.2,274.2 239.0,287.6 239.0,289.6 212.2,276.2\" fill=\"#718899\"><\/polygon><polygon points=\"223.4,268.6 250.2,282.0 239.0,287.6 212.2,274.2\" fill=\"#acbac2\"><\/polygon><polygon points=\"253.6,254.6 239.0,261.8 239.0,263.8 253.6,256.6\" fill=\"#44677f\"><\/polygon><polygon points=\"207.7,246.2 239.0,261.8 239.0,263.8 207.7,248.2\" fill=\"#6a899d\"><\/polygon><polygon points=\"222.2,238.9 253.6,254.6 239.0,261.8 207.7,246.2\" fill=\"#b3cbd7\"><\/polygon><\/g><g class=\"building-piece facade-finish\" data-layer=\"5.4\"><path d=\"M188.5 239.2 L287.0 288.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M357.9 253.2 L287.4 288.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M188.5 227.2 L287.0 276.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M357.9 241.2 L287.4 276.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M188.5 215.2 L287.0 264.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M357.9 229.2 L287.4 264.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M188.5 203.2 L287.0 252.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M357.9 217.2 L287.4 252.4\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><polygon points=\"211.8,245.7 209.6,246.8 209.6,248.1 211.8,247.0\" fill=\"#58798f\"><\/polygon><polygon points=\"196.1,240.1 209.6,246.8 209.6,248.1 196.1,241.4\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"198.4,239.0 211.8,245.7 209.6,246.8 196.1,240.1\" fill=\"#b8cad3\"><\/polygon><path d=\"M198.6 232.3 L209.8 237.9\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"199.6,227.9 201.9,229.0 207.5,241.8 205.2,240.7\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"233.1,256.3 230.9,257.5 230.9,258.8 233.1,257.6\" fill=\"#58798f\"><\/polygon><polygon points=\"217.4,250.7 230.9,257.5 230.9,258.8 217.4,252.0\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"219.7,249.6 233.1,256.3 230.9,257.5 217.4,250.7\" fill=\"#b8cad3\"><\/polygon><path d=\"M219.9 242.9 L231.1 248.5\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"220.9,238.6 223.1,239.7 228.7,252.5 226.5,251.4\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"254.4,267.0 252.1,268.1 252.1,269.4 254.4,268.3\" fill=\"#58798f\"><\/polygon><polygon points=\"238.7,261.4 252.1,268.1 252.1,269.4 238.7,262.7\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"240.9,260.3 254.4,267.0 252.1,268.1 238.7,261.4\" fill=\"#b8cad3\"><\/polygon><path d=\"M241.2 253.6 L252.4 259.2\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"242.2,249.2 244.4,250.3 250.0,263.1 247.8,262.0\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"275.7,277.6 273.4,278.7 273.4,280.0 275.7,278.9\" fill=\"#58798f\"><\/polygon><polygon points=\"260.0,272.0 273.4,278.7 273.4,280.0 260.0,273.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"262.2,270.9 275.7,277.6 273.4,278.7 260.0,272.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M262.4 264.2 L273.6 269.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"263.5,259.8 265.7,261.0 271.3,273.8 269.1,272.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M342.1 256.0 L342.1 242.0\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M347.7 246.2 L336.5 251.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"350.3,254.1 336.8,260.8 336.8,262.1 350.3,255.4\" fill=\"#426881\"><\/polygon><polygon points=\"334.6,259.7 336.8,260.8 336.8,262.1 334.6,261.0\" fill=\"#63869d\"><\/polygon><polygon points=\"348.0,253.0 350.3,254.1 336.8,260.8 334.6,259.7\" fill=\"#9ab5c4\"><\/polygon><path d=\"M320.8 266.7 L320.8 252.7\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M326.4 256.9 L315.2 262.5\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"329.0,264.7 315.5,271.5 315.5,272.8 329.0,266.0\" fill=\"#426881\"><\/polygon><polygon points=\"313.3,270.3 315.5,271.5 315.5,272.8 313.3,271.6\" fill=\"#63869d\"><\/polygon><polygon points=\"326.7,263.6 329.0,264.7 315.5,271.5 313.3,270.3\" fill=\"#9ab5c4\"><\/polygon><path d=\"M299.5 277.3 L299.5 263.3\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M305.1 267.5 L293.9 273.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"307.7,275.4 294.3,282.1 294.3,283.4 307.7,276.7\" fill=\"#426881\"><\/polygon><polygon points=\"292.0,281.0 294.3,282.1 294.3,283.4 292.0,282.3\" fill=\"#63869d\"><\/polygon><polygon points=\"305.5,274.3 307.7,275.4 294.3,282.1 292.0,281.0\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"211.8,221.7 209.6,222.8 209.6,224.1 211.8,223.0\" fill=\"#58798f\"><\/polygon><polygon points=\"196.1,216.1 209.6,222.8 209.6,224.1 196.1,217.4\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"198.4,215.0 211.8,221.7 209.6,222.8 196.1,216.1\" fill=\"#b8cad3\"><\/polygon><path d=\"M198.6 208.3 L209.8 213.9\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"199.6,203.9 201.9,205.0 207.5,217.8 205.2,216.7\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"233.1,232.3 230.9,233.5 230.9,234.8 233.1,233.6\" fill=\"#58798f\"><\/polygon><polygon points=\"217.4,226.7 230.9,233.5 230.9,234.8 217.4,228.0\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"219.7,225.6 233.1,232.3 230.9,233.5 217.4,226.7\" fill=\"#b8cad3\"><\/polygon><path d=\"M219.9 218.9 L231.1 224.5\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"220.9,214.6 223.1,215.7 228.7,228.5 226.5,227.4\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"254.4,243.0 252.1,244.1 252.1,245.4 254.4,244.3\" fill=\"#58798f\"><\/polygon><polygon points=\"238.7,237.4 252.1,244.1 252.1,245.4 238.7,238.7\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"240.9,236.3 254.4,243.0 252.1,244.1 238.7,237.4\" fill=\"#b8cad3\"><\/polygon><path d=\"M241.2 229.6 L252.4 235.2\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"242.2,225.2 244.4,226.3 250.0,239.1 247.8,238.0\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"275.7,253.6 273.4,254.7 273.4,256.0 275.7,254.9\" fill=\"#58798f\"><\/polygon><polygon points=\"260.0,248.0 273.4,254.7 273.4,256.0 260.0,249.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"262.2,246.9 275.7,253.6 273.4,254.7 260.0,248.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M262.4 240.2 L273.6 245.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"263.5,235.8 265.7,237.0 271.3,249.8 269.1,248.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M342.1 232.0 L342.1 218.0\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M347.7 222.2 L336.5 227.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"350.3,230.1 336.8,236.8 336.8,238.1 350.3,231.4\" fill=\"#426881\"><\/polygon><polygon points=\"334.6,235.7 336.8,236.8 336.8,238.1 334.6,237.0\" fill=\"#63869d\"><\/polygon><polygon points=\"348.0,229.0 350.3,230.1 336.8,236.8 334.6,235.7\" fill=\"#9ab5c4\"><\/polygon><path d=\"M320.8 242.7 L320.8 228.7\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M326.4 232.9 L315.2 238.5\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"329.0,240.7 315.5,247.5 315.5,248.8 329.0,242.0\" fill=\"#426881\"><\/polygon><polygon points=\"313.3,246.3 315.5,247.5 315.5,248.8 313.3,247.6\" fill=\"#63869d\"><\/polygon><polygon points=\"326.7,239.6 329.0,240.7 315.5,247.5 313.3,246.3\" fill=\"#9ab5c4\"><\/polygon><path d=\"M299.5 253.3 L299.5 239.3\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M305.1 243.5 L293.9 249.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"307.7,251.4 294.3,258.1 294.3,259.4 307.7,252.7\" fill=\"#426881\"><\/polygon><polygon points=\"292.0,257.0 294.3,258.1 294.3,259.4 292.0,258.3\" fill=\"#63869d\"><\/polygon><polygon points=\"305.5,250.3 307.7,251.4 294.3,258.1 292.0,257.0\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"226.6,269.4 234.4,273.3 234.4,253.3 226.6,249.4\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"227.5,262.1 233.1,264.9 233.1,253.9 227.5,251.1\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M231.8 267.4 L231.8 262.4\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"236.7,274.5 244.5,278.4 244.5,258.4 236.7,254.5\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"237.6,267.1 243.2,269.9 243.2,258.9 237.6,256.1\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M241.8 272.5 L241.8 267.5\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"242.4,290.9 239.0,292.6 239.0,293.6 242.4,291.9\" fill=\"#466477\"><\/polygon><polygon points=\"212.2,279.2 239.0,292.6 239.0,293.6 212.2,280.2\" fill=\"#688496\"><\/polygon><polygon points=\"215.5,277.5 242.4,290.9 239.0,292.6 212.2,279.2\" fill=\"#a4b5be\"><\/polygon><polygon points=\"239.0,291.6 235.7,293.3 235.7,294.3 239.0,292.6\" fill=\"#466477\"><\/polygon><polygon points=\"208.8,279.8 235.7,293.3 235.7,294.3 208.8,280.8\" fill=\"#688496\"><\/polygon><polygon points=\"212.2,278.2 239.0,291.6 235.7,293.3 208.8,279.8\" fill=\"#a4b5be\"><\/polygon><polygon points=\"235.7,292.3 232.3,294.0 232.3,295.0 235.7,293.3\" fill=\"#466477\"><\/polygon><polygon points=\"205.4,280.5 232.3,294.0 232.3,295.0 205.4,281.5\" fill=\"#688496\"><\/polygon><polygon points=\"208.8,278.8 235.7,292.3 232.3,294.0 205.4,280.5\" fill=\"#a4b5be\"><\/polygon><path d=\"M223.4 249.6 L212.2 248.2\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><path d=\"M250.2 263.0 L239.0 261.6\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><path d=\"M366.7 205.1 L327.0 207.0 L287.2 244.8\" fill=\"none\" stroke=\"#afc3cf\" stroke-width=\"1.1\"><\/path><path d=\"M291.7 240.2 L291.7 297.2\" fill=\"none\" stroke=\"#819da9\" stroke-width=\"1.4\"><\/path><polygon points=\"196.3,250.2 210.8,257.5 210.8,240.5 196.3,233.2\" fill=\"#254457\" stroke=\"#b6c8cb\" stroke-width=\".7\"><\/polygon><path d=\"M198.4 248.4 L208.5 253.4\" fill=\"none\" stroke=\"#c9bc91\" stroke-width=\"1.1\"><\/path><polygon points=\"265.7,285.0 280.3,292.2 280.3,275.2 265.7,268.0\" fill=\"#254457\" stroke=\"#b6c8cb\" stroke-width=\".7\"><\/polygon><path d=\"M267.8 283.1 L277.9 288.2\" fill=\"none\" stroke=\"#c9bc91\" stroke-width=\"1.1\"><\/path><\/g><g class=\"building-piece\" data-layer=\"5.5\"><g transform=\"translate(236.8 238.5) skewY(26.565)\"><rect x=\"-36\" y=\"-9\" width=\"72\" height=\"18\" rx=\"2\" fill=\"#172b3a\" stroke=\"#aecbda\" stroke-width=\".6\"><\/rect><text text-anchor=\"middle\" y=\"3\" fill=\"#e3f1fa\" font-family=\"sans-serif\" font-size=\"9\" font-weight=\"700\" letter-spacing=\"1\">STORE<\/text><\/g><\/g><g class=\"building-piece\" data-layer=\"5.9\"><polygon points=\"187.5,248.6 286.1,297.9 286.1,296.7 187.5,247.4\" fill=\"#d8bf8d\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"6\"><g data-life=\"awning\" data-origin-x=\"196.47999999999996\" data-origin-y=\"233.12\"><polygon points=\"196.5,233.1 206.6,238.2 194.2,248.3 184.2,243.3\" fill=\"#748f8f\"><\/polygon><polygon points=\"206.6,238.2 216.6,243.2 204.3,253.4 194.2,248.3\" fill=\"#ddd7bd\"><\/polygon><polygon points=\"216.6,243.2 226.7,248.2 214.4,258.4 204.3,253.4\" fill=\"#748f8f\"><\/polygon><polygon points=\"226.7,248.2 236.8,253.3 224.5,263.4 214.4,258.4\" fill=\"#ddd7bd\"><\/polygon><polygon points=\"236.8,253.3 246.9,258.3 234.6,268.5 224.5,263.4\" fill=\"#748f8f\"><\/polygon><polygon points=\"246.9,258.3 257.0,263.4 244.6,273.5 234.6,268.5\" fill=\"#ddd7bd\"><\/polygon><polygon points=\"257.0,263.4 267.0,268.4 254.7,278.6 244.6,273.5\" fill=\"#748f8f\"><\/polygon><polygon points=\"267.0,268.4 277.1,273.4 264.8,283.6 254.7,278.6\" fill=\"#ddd7bd\"><\/polygon><polygon points=\"277.1,273.4 287.2,278.5 274.9,288.6 264.8,283.6\" fill=\"#748f8f\"><\/polygon><\/g><polygon points=\"198.7,268.7 192.0,272.0 192.0,277.0 198.7,273.7\" fill=\"#4d5843\"><\/polygon><polygon points=\"175.2,263.6 192.0,272.0 192.0,277.0 175.2,268.6\" fill=\"#6f714f\"><\/polygon><polygon points=\"181.9,260.3 198.7,268.7 192.0,272.0 175.2,263.6\" fill=\"#9e956b\"><\/polygon><polygon points=\"195.4,265.1 190.9,267.4 190.9,270.4 195.4,268.1\" fill=\"#496647\"><\/polygon><polygon points=\"178.6,261.2 190.9,267.4 190.9,270.4 178.6,264.2\" fill=\"#65845d\"><\/polygon><polygon points=\"183.0,259.0 195.4,265.1 190.9,267.4 178.6,261.2\" fill=\"#89a783\"><\/polygon><polygon points=\"267.0,302.8 260.3,306.2 260.3,311.2 267.0,307.8\" fill=\"#4d5843\"><\/polygon><polygon points=\"243.5,297.8 260.3,306.2 260.3,311.2 243.5,302.8\" fill=\"#6f714f\"><\/polygon><polygon points=\"250.2,294.4 267.0,302.8 260.3,306.2 243.5,297.8\" fill=\"#9e956b\"><\/polygon><polygon points=\"263.7,299.3 259.2,301.5 259.2,304.5 263.7,302.3\" fill=\"#496647\"><\/polygon><polygon points=\"246.9,295.4 259.2,301.5 259.2,304.5 246.9,298.4\" fill=\"#65845d\"><\/polygon><polygon points=\"251.4,293.1 263.7,299.3 259.2,301.5 246.9,295.4\" fill=\"#89a783\"><\/polygon><\/g><g class=\"building-piece crafted-detail\" data-layer=\"5.7\"><polygon points=\"345.0,266.1 330.4,273.4 330.4,251.4 345.0,244.1\" fill=\"#193e4d\" stroke=\"#abc3c7\" stroke-width=\".8\"><\/polygon><path d=\"M345.2 255.2 L330.7 262.5\" fill=\"none\" stroke=\"#7b9da7\" stroke-width=\"0.7\"><\/path><polygon points=\"320.4,278.5 305.8,285.7 305.8,263.7 320.4,256.5\" fill=\"#193e4d\" stroke=\"#abc3c7\" stroke-width=\".8\"><\/polygon><path d=\"M320.6 267.6 L306.0 274.8\" fill=\"none\" stroke=\"#7b9da7\" stroke-width=\"0.7\"><\/path><polygon points=\"189.8,255.2 185.3,257.4 185.3,266.4 189.8,264.2\" fill=\"#4b6a50\"><\/polygon><polygon points=\"179.7,254.6 185.3,257.4 185.3,266.4 179.7,263.6\" fill=\"#718c6d\"><\/polygon><polygon points=\"184.2,252.4 189.8,255.2 185.3,257.4 179.7,254.6\" fill=\"#a3b49a\"><\/polygon><polygon points=\"257.0,288.8 252.5,291.0 252.5,300.0 257.0,297.8\" fill=\"#4b6a50\"><\/polygon><polygon points=\"246.9,288.2 252.5,291.0 252.5,300.0 246.9,297.2\" fill=\"#718c6d\"><\/polygon><polygon points=\"251.4,286.0 257.0,288.8 252.5,291.0 246.9,288.2\" fill=\"#a3b49a\"><\/polygon><\/g><\/g><\/g><g class=\"city-object district\" data-district=\"1\" data-rise=\"\" data-depth=\"14\"><g id=\"bwrp-model-work\"><g class=\"building-piece\" data-layer=\"0\"><polygon points=\"682.6,231.9 811.4,296.3 725.1,343.9 591.8,277.2\" fill=\"#0a1421\" opacity=\".27\"><\/polygon><polygon points=\"799.0,284.2 719.5,324.0 719.5,331.0 799.0,291.2\" fill=\"#354b5e\"><\/polygon><polygon points=\"603.0,265.8 719.5,324.0 719.5,331.0 603.0,272.8\" fill=\"#4e6474\"><\/polygon><polygon points=\"682.6,226.0 799.0,284.2 719.5,324.0 603.0,265.8\" fill=\"#81939f\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"0.7\"><polygon points=\"790.1,264.2 719.5,299.5 719.5,319.5 790.1,284.2\" fill=\"#445d55\"><\/polygon><polygon points=\"612.0,245.8 719.5,299.5 719.5,319.5 612.0,265.8\" fill=\"#66796e\"><\/polygon><polygon points=\"682.6,210.5 790.1,264.2 719.5,299.5 612.0,245.8\" fill=\"#a4ada2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"1.5333333333333332\"><polygon points=\"790.1,244.2 719.5,279.5 719.5,299.5 790.1,264.2\" fill=\"#445d55\"><\/polygon><polygon points=\"612.0,225.8 719.5,279.5 719.5,299.5 612.0,245.8\" fill=\"#66796e\"><\/polygon><polygon points=\"682.6,190.5 790.1,244.2 719.5,279.5 612.0,225.8\" fill=\"#a4ada2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"2.3666666666666667\"><polygon points=\"790.1,224.2 719.5,259.5 719.5,279.5 790.1,244.2\" fill=\"#445d55\"><\/polygon><polygon points=\"612.0,205.8 719.5,259.5 719.5,279.5 612.0,225.8\" fill=\"#66796e\"><\/polygon><polygon points=\"682.6,170.5 790.1,224.2 719.5,259.5 612.0,205.8\" fill=\"#a4ada2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.2\"><polygon points=\"792.3,263.0 719.5,299.4 719.5,300.6 792.3,264.2\" fill=\"#506f85\"><\/polygon><polygon points=\"609.8,244.6 719.5,299.4 719.5,300.6 609.8,245.8\" fill=\"#728d9d\"><\/polygon><polygon points=\"682.6,208.2 792.3,263.0 719.5,299.4 609.8,244.6\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"792.3,243.0 719.5,279.4 719.5,280.6 792.3,244.2\" fill=\"#506f85\"><\/polygon><polygon points=\"609.8,224.6 719.5,279.4 719.5,280.6 609.8,225.8\" fill=\"#728d9d\"><\/polygon><polygon points=\"682.6,188.2 792.3,243.0 719.5,279.4 609.8,224.6\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"611.9,257.8 719.4,311.6 719.4,311.2 611.9,257.5\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><polygon points=\"611.9,245.8 719.4,299.6 719.4,299.2 611.9,245.5\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><polygon points=\"611.9,233.8 719.4,287.6 719.4,287.2 611.9,233.5\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><polygon points=\"611.9,221.8 719.4,275.6 719.4,275.2 611.9,221.5\" fill=\"#d6cdb9\" opacity=\".2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.7\"><\/g><g class=\"building-piece\" data-layer=\"4.2\"><polygon points=\"796.8,220.2 719.5,258.9 719.5,262.9 796.8,224.2\" fill=\"#4f6a83\"><\/polygon><polygon points=\"605.3,201.8 719.5,258.9 719.5,262.9 605.3,205.8\" fill=\"#738c9e\"><\/polygon><polygon points=\"682.6,163.1 796.8,220.2 719.5,258.9 605.3,201.8\" fill=\"#b1c4ce\"><\/polygon><polygon points=\"682.6,162.0 799.0,220.2 759.3,222.1 642.8,163.9\" fill=\"#6c8498\"><\/polygon><polygon points=\"603.0,201.8 719.5,260.0 759.3,222.1 642.8,163.9\" fill=\"#425d74\"><\/polygon><polygon points=\"799.0,220.2 719.5,260.0 759.3,222.1\" fill=\"#8d9a9e\"><\/polygon><polygon points=\"612.0,206.2 612.8,206.6 652.5,168.8 651.8,168.4\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"625.4,213.0 626.2,213.4 666.0,175.5 665.2,175.1\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"638.9,219.7 639.7,220.1 679.4,182.2 678.6,181.8\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"652.3,226.4 653.1,226.8 692.9,188.9 692.1,188.5\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"665.8,233.1 666.5,233.5 706.3,195.6 705.5,195.2\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"679.2,239.8 680.0,240.2 719.7,202.4 719.0,202.0\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"692.6,246.6 693.4,247.0 733.2,209.1 732.4,208.7\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"706.1,253.3 706.9,253.7 746.6,215.8 745.8,215.4\" fill=\"#a2bac9\" opacity=\".18\"><\/polygon><polygon points=\"702.7,153.4 690.4,159.6 690.4,190.6 702.7,184.4\" fill=\"#526d62\"><\/polygon><polygon points=\"678.1,153.4 690.4,159.6 690.4,190.6 678.1,184.4\" fill=\"#7d9389\"><\/polygon><polygon points=\"690.4,147.2 702.7,153.4 690.4,159.6 678.1,153.4\" fill=\"#b6c6bf\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"4.9\"><polygon points=\"621.4,255.1 634.8,261.9 634.8,245.9 621.4,239.1\" fill=\"#253c50\"><\/polygon><polygon points=\"622.3,254.8 633.5,260.4 633.5,246.4 622.3,240.8\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"627.1,257.4 628.0,257.9 628.0,243.9 627.1,243.4\" fill=\"#547b91\"><\/polygon><polygon points=\"642.7,265.8 656.1,272.5 656.1,256.5 642.7,249.8\" fill=\"#253c50\"><\/polygon><polygon points=\"643.6,265.4 654.8,271.0 654.8,257.0 643.6,251.4\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"648.4,268.1 649.3,268.5 649.3,254.5 648.4,254.1\" fill=\"#547b91\"><\/polygon><polygon points=\"664.0,276.4 677.4,283.1 677.4,267.1 664.0,260.4\" fill=\"#253c50\"><\/polygon><polygon points=\"664.9,276.1 676.1,281.7 676.1,267.7 664.9,262.1\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"669.7,278.7 670.6,279.2 670.6,265.2 669.7,264.7\" fill=\"#547b91\"><\/polygon><polygon points=\"685.2,287.1 698.7,293.8 698.7,277.8 685.2,271.1\" fill=\"#253c50\"><\/polygon><polygon points=\"686.1,286.7 697.3,292.3 697.3,278.3 686.1,272.7\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"691.0,289.4 691.9,289.8 691.9,275.8 691.0,275.4\" fill=\"#547b91\"><\/polygon><polygon points=\"706.5,297.7 720.0,304.4 720.0,288.4 706.5,281.7\" fill=\"#253c50\"><\/polygon><polygon points=\"707.4,297.4 718.6,303.0 718.6,289.0 707.4,283.4\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"712.2,300.0 713.1,300.4 713.1,286.4 712.2,286.0\" fill=\"#547b91\"><\/polygon><polygon points=\"780.7,273.6 767.2,280.3 767.2,264.3 780.7,257.6\" fill=\"#22364b\"><\/polygon><polygon points=\"779.8,273.3 768.6,278.9 768.6,264.9 779.8,259.3\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"759.4,284.3 746.0,291.0 746.0,275.0 759.4,268.3\" fill=\"#22364b\"><\/polygon><polygon points=\"758.5,283.9 747.3,289.5 747.3,275.5 758.5,269.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"738.1,294.9 724.7,301.6 724.7,285.6 738.1,278.9\" fill=\"#22364b\"><\/polygon><polygon points=\"737.2,294.6 726.0,300.2 726.0,286.2 737.2,280.6\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"621.4,231.1 634.8,237.9 634.8,221.9 621.4,215.1\" fill=\"#253c50\"><\/polygon><polygon points=\"622.3,230.8 633.5,236.4 633.5,222.4 622.3,216.8\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"627.1,233.4 628.0,233.9 628.0,219.9 627.1,219.4\" fill=\"#547b91\"><\/polygon><polygon points=\"642.7,241.8 656.1,248.5 656.1,232.5 642.7,225.8\" fill=\"#253c50\"><\/polygon><polygon points=\"643.6,241.4 654.8,247.0 654.8,233.0 643.6,227.4\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"648.4,244.1 649.3,244.5 649.3,230.5 648.4,230.1\" fill=\"#547b91\"><\/polygon><polygon points=\"664.0,252.4 677.4,259.1 677.4,243.1 664.0,236.4\" fill=\"#253c50\"><\/polygon><polygon points=\"664.9,252.1 676.1,257.7 676.1,243.7 664.9,238.1\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"669.7,254.7 670.6,255.2 670.6,241.2 669.7,240.7\" fill=\"#547b91\"><\/polygon><polygon points=\"685.2,263.1 698.7,269.8 698.7,253.8 685.2,247.1\" fill=\"#253c50\"><\/polygon><polygon points=\"686.1,262.7 697.3,268.3 697.3,254.3 686.1,248.7\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"691.0,265.4 691.9,265.8 691.9,251.8 691.0,251.4\" fill=\"#547b91\"><\/polygon><polygon points=\"706.5,273.7 720.0,280.4 720.0,264.4 706.5,257.7\" fill=\"#253c50\"><\/polygon><polygon points=\"707.4,273.4 718.6,279.0 718.6,265.0 707.4,259.4\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"712.2,276.0 713.1,276.4 713.1,262.4 712.2,262.0\" fill=\"#547b91\"><\/polygon><polygon points=\"780.7,249.6 767.2,256.3 767.2,240.3 780.7,233.6\" fill=\"#22364b\"><\/polygon><polygon points=\"779.8,249.3 768.6,254.9 768.6,240.9 779.8,235.3\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"759.4,260.3 746.0,267.0 746.0,251.0 759.4,244.3\" fill=\"#22364b\"><\/polygon><polygon points=\"758.5,259.9 747.3,265.5 747.3,251.5 758.5,245.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"738.1,270.9 724.7,277.6 724.7,261.6 738.1,254.9\" fill=\"#22364b\"><\/polygon><polygon points=\"737.2,270.6 726.0,276.2 726.0,262.2 737.2,256.6\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"5.2\"><polygon points=\"675.8,273.8 674.7,274.4 674.7,299.4 675.8,298.8\" fill=\"#29495f\"><\/polygon><polygon points=\"652.3,263.2 674.7,274.4 674.7,299.4 652.3,288.2\" fill=\"#365c74\"><\/polygon><polygon points=\"653.4,262.6 675.8,273.8 674.7,274.4 652.3,263.2\" fill=\"#7eacbf\"><\/polygon><polygon points=\"678.1,299.9 666.9,305.5 666.9,307.5 678.1,301.9\" fill=\"#4c677c\"><\/polygon><polygon points=\"640.0,292.1 666.9,305.5 666.9,307.5 640.0,294.1\" fill=\"#718899\"><\/polygon><polygon points=\"651.2,286.5 678.1,299.9 666.9,305.5 640.0,292.1\" fill=\"#acbac2\"><\/polygon><polygon points=\"681.4,272.5 666.9,279.8 666.9,281.8 681.4,274.5\" fill=\"#44677f\"><\/polygon><polygon points=\"635.5,264.1 666.9,279.8 666.9,281.8 635.5,266.1\" fill=\"#6a899d\"><\/polygon><polygon points=\"650.1,256.8 681.4,272.5 666.9,279.8 635.5,264.1\" fill=\"#b3cbd7\"><\/polygon><\/g><g class=\"building-piece facade-finish\" data-layer=\"5.4\"><path d=\"M611.8 254.8 L719.4 308.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M790.2 273.3 L719.7 308.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M611.8 242.8 L719.4 296.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M790.2 261.3 L719.7 296.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M611.8 230.8 L719.4 284.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M790.2 249.3 L719.7 284.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M611.8 218.8 L719.4 272.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M790.2 237.3 L719.7 272.6\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><polygon points=\"635.2,261.4 632.9,262.5 632.9,263.8 635.2,262.7\" fill=\"#58798f\"><\/polygon><polygon points=\"619.5,255.8 632.9,262.5 632.9,263.8 619.5,257.1\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"621.7,254.7 635.2,261.4 632.9,262.5 619.5,255.8\" fill=\"#b8cad3\"><\/polygon><path d=\"M622.0 248.0 L633.2 253.6\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"623.0,243.6 625.2,244.7 630.8,257.5 628.6,256.4\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"656.5,272.0 654.2,273.1 654.2,274.4 656.5,273.3\" fill=\"#58798f\"><\/polygon><polygon points=\"640.8,266.4 654.2,273.1 654.2,274.4 640.8,267.7\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"643.0,265.3 656.5,272.0 654.2,273.1 640.8,266.4\" fill=\"#b8cad3\"><\/polygon><path d=\"M643.2 258.6 L654.4 264.2\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"644.3,254.2 646.5,255.4 652.1,268.2 649.9,267.0\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"677.7,282.7 675.5,283.8 675.5,285.1 677.7,284.0\" fill=\"#58798f\"><\/polygon><polygon points=\"662.1,277.1 675.5,283.8 675.5,285.1 662.1,278.4\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"664.3,275.9 677.7,282.7 675.5,283.8 662.1,277.1\" fill=\"#b8cad3\"><\/polygon><path d=\"M664.5 269.3 L675.7 274.9\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"665.5,264.9 667.8,266.0 673.4,278.8 671.1,277.7\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"699.0,293.3 696.8,294.4 696.8,295.7 699.0,294.6\" fill=\"#58798f\"><\/polygon><polygon points=\"683.3,287.7 696.8,294.4 696.8,295.7 683.3,289.0\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"685.6,286.6 699.0,293.3 696.8,294.4 683.3,287.7\" fill=\"#b8cad3\"><\/polygon><path d=\"M685.8 279.9 L697.0 285.5\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"686.8,275.5 689.1,276.6 694.7,289.4 692.4,288.3\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"720.3,303.9 718.1,305.1 718.1,306.4 720.3,305.2\" fill=\"#58798f\"><\/polygon><polygon points=\"704.6,298.3 718.1,305.1 718.1,306.4 704.6,299.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"706.9,297.2 720.3,303.9 718.1,305.1 704.6,298.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M707.1 290.5 L718.3 296.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"708.1,286.2 710.3,287.3 715.9,300.1 713.7,299.0\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M774.4 276.2 L774.4 262.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M780.0 266.4 L768.8 272.0\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"782.6,274.3 769.1,281.0 769.1,282.3 782.6,275.6\" fill=\"#426881\"><\/polygon><polygon points=\"766.9,279.9 769.1,281.0 769.1,282.3 766.9,281.2\" fill=\"#63869d\"><\/polygon><polygon points=\"780.3,273.1 782.6,274.3 769.1,281.0 766.9,279.9\" fill=\"#9ab5c4\"><\/polygon><path d=\"M753.1 286.8 L753.1 272.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M758.7 277.0 L747.5 282.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"761.3,284.9 747.9,291.6 747.9,292.9 761.3,286.2\" fill=\"#426881\"><\/polygon><polygon points=\"745.6,290.5 747.9,291.6 747.9,292.9 745.6,291.8\" fill=\"#63869d\"><\/polygon><polygon points=\"759.1,283.8 761.3,284.9 747.9,291.6 745.6,290.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M731.8 297.5 L731.8 283.5\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M737.4 287.7 L726.2 293.3\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"740.0,295.5 726.6,302.3 726.6,303.6 740.0,296.8\" fill=\"#426881\"><\/polygon><polygon points=\"724.3,301.1 726.6,302.3 726.6,303.6 724.3,302.4\" fill=\"#63869d\"><\/polygon><polygon points=\"737.8,294.4 740.0,295.5 726.6,302.3 724.3,301.1\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"635.2,237.4 632.9,238.5 632.9,239.8 635.2,238.7\" fill=\"#58798f\"><\/polygon><polygon points=\"619.5,231.8 632.9,238.5 632.9,239.8 619.5,233.1\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"621.7,230.7 635.2,237.4 632.9,238.5 619.5,231.8\" fill=\"#b8cad3\"><\/polygon><path d=\"M622.0 224.0 L633.2 229.6\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"623.0,219.6 625.2,220.7 630.8,233.5 628.6,232.4\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"656.5,248.0 654.2,249.1 654.2,250.4 656.5,249.3\" fill=\"#58798f\"><\/polygon><polygon points=\"640.8,242.4 654.2,249.1 654.2,250.4 640.8,243.7\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"643.0,241.3 656.5,248.0 654.2,249.1 640.8,242.4\" fill=\"#b8cad3\"><\/polygon><path d=\"M643.2 234.6 L654.4 240.2\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"644.3,230.2 646.5,231.4 652.1,244.2 649.9,243.0\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"677.7,258.7 675.5,259.8 675.5,261.1 677.7,260.0\" fill=\"#58798f\"><\/polygon><polygon points=\"662.1,253.1 675.5,259.8 675.5,261.1 662.1,254.4\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"664.3,251.9 677.7,258.7 675.5,259.8 662.1,253.1\" fill=\"#b8cad3\"><\/polygon><path d=\"M664.5 245.3 L675.7 250.9\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"665.5,240.9 667.8,242.0 673.4,254.8 671.1,253.7\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"699.0,269.3 696.8,270.4 696.8,271.7 699.0,270.6\" fill=\"#58798f\"><\/polygon><polygon points=\"683.3,263.7 696.8,270.4 696.8,271.7 683.3,265.0\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"685.6,262.6 699.0,269.3 696.8,270.4 683.3,263.7\" fill=\"#b8cad3\"><\/polygon><path d=\"M685.8 255.9 L697.0 261.5\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"686.8,251.5 689.1,252.6 694.7,265.4 692.4,264.3\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"720.3,279.9 718.1,281.1 718.1,282.4 720.3,281.2\" fill=\"#58798f\"><\/polygon><polygon points=\"704.6,274.3 718.1,281.1 718.1,282.4 704.6,275.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"706.9,273.2 720.3,279.9 718.1,281.1 704.6,274.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M707.1 266.5 L718.3 272.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"708.1,262.2 710.3,263.3 715.9,276.1 713.7,275.0\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M774.4 252.2 L774.4 238.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M780.0 242.4 L768.8 248.0\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"782.6,250.3 769.1,257.0 769.1,258.3 782.6,251.6\" fill=\"#426881\"><\/polygon><polygon points=\"766.9,255.9 769.1,257.0 769.1,258.3 766.9,257.2\" fill=\"#63869d\"><\/polygon><polygon points=\"780.3,249.1 782.6,250.3 769.1,257.0 766.9,255.9\" fill=\"#9ab5c4\"><\/polygon><path d=\"M753.1 262.8 L753.1 248.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M758.7 253.0 L747.5 258.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"761.3,260.9 747.9,267.6 747.9,268.9 761.3,262.2\" fill=\"#426881\"><\/polygon><polygon points=\"745.6,266.5 747.9,267.6 747.9,268.9 745.6,267.8\" fill=\"#63869d\"><\/polygon><polygon points=\"759.1,259.8 761.3,260.9 747.9,267.6 745.6,266.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M731.8 273.5 L731.8 259.5\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M737.4 263.7 L726.2 269.3\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"740.0,271.5 726.6,278.3 726.6,279.6 740.0,272.8\" fill=\"#426881\"><\/polygon><polygon points=\"724.3,277.1 726.6,278.3 726.6,279.6 724.3,278.4\" fill=\"#63869d\"><\/polygon><polygon points=\"737.8,270.4 740.0,271.5 726.6,278.3 724.3,277.1\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"654.4,287.3 662.3,291.3 662.3,271.3 654.4,267.3\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"655.3,280.0 660.9,282.8 660.9,271.8 655.3,269.0\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M659.6 285.4 L659.6 280.4\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"664.5,292.4 672.4,296.3 672.4,276.3 664.5,272.4\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"665.4,285.0 671.0,287.8 671.0,276.8 665.4,274.0\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M669.7 290.4 L669.7 285.4\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"670.2,308.8 666.9,310.5 666.9,311.5 670.2,309.8\" fill=\"#466477\"><\/polygon><polygon points=\"640.0,297.1 666.9,310.5 666.9,311.5 640.0,298.1\" fill=\"#688496\"><\/polygon><polygon points=\"643.4,295.4 670.2,308.8 666.9,310.5 640.0,297.1\" fill=\"#a4b5be\"><\/polygon><polygon points=\"666.9,309.5 663.5,311.2 663.5,312.2 666.9,310.5\" fill=\"#466477\"><\/polygon><polygon points=\"636.6,297.8 663.5,311.2 663.5,312.2 636.6,298.8\" fill=\"#688496\"><\/polygon><polygon points=\"640.0,296.1 666.9,309.5 663.5,311.2 636.6,297.8\" fill=\"#a4b5be\"><\/polygon><polygon points=\"663.5,310.2 660.2,311.9 660.2,312.9 663.5,311.2\" fill=\"#466477\"><\/polygon><polygon points=\"633.3,298.4 660.2,311.9 660.2,312.9 633.3,299.4\" fill=\"#688496\"><\/polygon><polygon points=\"636.6,296.8 663.5,310.2 660.2,311.9 633.3,298.4\" fill=\"#a4b5be\"><\/polygon><path d=\"M651.2 267.5 L640.0 266.1\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><path d=\"M678.1 280.9 L666.9 279.5\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><path d=\"M799.0 220.2 L759.3 222.1 L719.5 260.0\" fill=\"none\" stroke=\"#afc3cf\" stroke-width=\"1.1\"><\/path><path d=\"M724.0 255.4 L724.0 317.4\" fill=\"none\" stroke=\"#819da9\" stroke-width=\"1.4\"><\/path><path d=\"M782.2 286.3 L782.2 266.3\" fill=\"none\" stroke=\"#9cb2bb\" stroke-width=\"0.6\"><\/path><path d=\"M776.6 289.1 L776.6 269.1\" fill=\"none\" stroke=\"#9cb2bb\" stroke-width=\"0.6\"><\/path><path d=\"M771.0 291.9 L771.0 271.9\" fill=\"none\" stroke=\"#9cb2bb\" stroke-width=\"0.6\"><\/path><path d=\"M765.4 294.7 L765.4 274.7\" fill=\"none\" stroke=\"#9cb2bb\" stroke-width=\"0.6\"><\/path><path d=\"M759.8 297.5 L759.8 277.5\" fill=\"none\" stroke=\"#9cb2bb\" stroke-width=\"0.6\"><\/path><polygon points=\"707.2,152.4 690.4,160.8 690.4,163.8 707.2,155.4\" fill=\"#617c70\"><\/polygon><polygon points=\"673.6,152.4 690.4,160.8 690.4,163.8 673.6,155.4\" fill=\"#8ba297\"><\/polygon><polygon points=\"690.4,144.0 707.2,152.4 690.4,160.8 673.6,152.4\" fill=\"#c3d0cc\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"5.5\"><g transform=\"translate(664.6 253.2) skewY(26.565)\"><rect x=\"-36\" y=\"-9\" width=\"72\" height=\"18\" rx=\"2\" fill=\"#172b3a\" stroke=\"#aecbda\" stroke-width=\".6\"><\/rect><text text-anchor=\"middle\" y=\"3\" fill=\"#e3f1fa\" font-family=\"sans-serif\" font-size=\"7\" font-weight=\"700\" letter-spacing=\"1\">\u041c\u0410\u0421\u0422\u0415\u0420\u0421\u041a\u0410\u042f<\/text><\/g><\/g><g class=\"building-piece\" data-layer=\"5.9\"><polygon points=\"610.9,264.3 718.4,318.1 718.4,316.9 610.9,263.1\" fill=\"#a4cdb9\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"6\"><polygon points=\"674.7,185.5 690.4,193.3 675.8,207.2 660.2,199.3\" fill=\"#8cadc0\" stroke=\"#c5d4dc\" stroke-width=\".6\"><\/polygon><polygon points=\"699.4,197.8 715.0,205.6 700.5,219.5 684.8,211.7\" fill=\"#8cadc0\" stroke=\"#c5d4dc\" stroke-width=\".6\"><\/polygon><polygon points=\"724.0,210.1 739.7,217.9 725.1,231.8 709.4,224.0\" fill=\"#8cadc0\" stroke=\"#c5d4dc\" stroke-width=\".6\"><\/polygon><polygon points=\"783.4,302.1 769.9,308.8 769.9,321.8 783.4,315.1\" fill=\"#675a47\"><\/polygon><polygon points=\"756.5,302.1 769.9,308.8 769.9,321.8 756.5,315.1\" fill=\"#8d795c\"><\/polygon><polygon points=\"769.9,295.4 783.4,302.1 769.9,308.8 756.5,302.1\" fill=\"#b2a185\"><\/polygon><polygon points=\"791.2,316.1 777.8,322.8 777.8,335.8 791.2,329.1\" fill=\"#675a47\"><\/polygon><polygon points=\"764.3,316.1 777.8,322.8 777.8,335.8 764.3,329.1\" fill=\"#8d795c\"><\/polygon><polygon points=\"777.8,309.4 791.2,316.1 777.8,322.8 764.3,316.1\" fill=\"#b2a185\"><\/polygon><polygon points=\"754.2,316.7 740.8,323.4 740.8,336.4 754.2,329.7\" fill=\"#675a47\"><\/polygon><polygon points=\"727.4,316.7 740.8,323.4 740.8,336.4 727.4,329.7\" fill=\"#8d795c\"><\/polygon><polygon points=\"740.8,310.0 754.2,316.7 740.8,323.4 727.4,316.7\" fill=\"#b2a185\"><\/polygon><polygon points=\"757.6,333.2 745.3,339.4 745.3,344.4 757.6,338.2\" fill=\"#6d6051\"><\/polygon><polygon points=\"720.6,327.0 745.3,339.4 745.3,344.4 720.6,332.0\" fill=\"#8f806a\"><\/polygon><polygon points=\"733.0,320.9 757.6,333.2 745.3,339.4 720.6,327.0\" fill=\"#c2b397\"><\/polygon><\/g><g class=\"building-piece workshop-bay\" data-layer=\"4.9\"><defs><clippath id=\"workshop-door-clip\"><polygon points=\"777.8,289.5 754.2,301.3 754.2,279.3 777.8,267.5\"><\/polygon><\/clippath><\/defs><polygon points=\"777.8,289.5 754.2,301.3 754.2,279.3 777.8,267.5\" fill=\"#172b35\" stroke=\"#9db4bd\" stroke-width=\".8\"><\/polygon><g clip-path=\"url(#workshop-door-clip)\"><g data-life=\"shutter\"><polygon points=\"777.8,289.5 754.2,301.3 754.2,279.3 777.8,267.5\" fill=\"#6f8790\" stroke=\"#9db4bd\" stroke-width=\".8\"><\/polygon><path d=\"M777.9 286.6L754.4 298.3\" stroke=\"#bfd1d4\" stroke-width=\".6\" opacity=\".45\"><\/path><path d=\"M777.9 282.6L754.4 294.3\" stroke=\"#bfd1d4\" stroke-width=\".6\" opacity=\".45\"><\/path><path d=\"M777.9 278.6L754.4 290.3\" stroke=\"#bfd1d4\" stroke-width=\".6\" opacity=\".45\"><\/path><path d=\"M777.9 274.6L754.4 286.3\" stroke=\"#bfd1d4\" stroke-width=\".6\" opacity=\".45\"><\/path><path d=\"M777.9 270.6L754.4 282.3\" stroke=\"#bfd1d4\" stroke-width=\".6\" opacity=\".45\"><\/path><\/g><\/g><\/g><g class=\"building-piece crafted-detail\" data-layer=\"6\"><g transform=\"translate(770.48 260.72) matrix(.85,-.425,0,1,0,0)\"><circle r=\"8\" fill=\"#2b414a\" stroke=\"#a8bdc4\" stroke-width=\"1.2\"><\/circle><g data-ambient=\"fan\"><path d=\"M0 0Q-7-1-4-6Q1-8 0 0Q6-4 7 1Q6 6 0 0Q2 7-3 6Q-8 3 0 0\" fill=\"#90aab4\"><\/path><circle r=\"1.6\" fill=\"#c1d2d8\"><\/circle><\/g><\/g><ellipse data-ambient=\"smoke\" data-index=\"0\" cx=\"691.52\" cy=\"148.40\" rx=\"5\" ry=\"3.2\" fill=\"#bbcfda\" opacity=\"0\"><\/ellipse><ellipse data-ambient=\"smoke\" data-index=\"1\" cx=\"691.52\" cy=\"148.40\" rx=\"5\" ry=\"3.2\" fill=\"#bbcfda\" opacity=\"0\"><\/ellipse><ellipse data-ambient=\"smoke\" data-index=\"2\" cx=\"691.52\" cy=\"148.40\" rx=\"5\" ry=\"3.2\" fill=\"#bbcfda\" opacity=\"0\"><\/ellipse><\/g><\/g><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"50\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"-1\"><g data-ambient=\"person\" data-index=\"2\"><polygon points=\"205.4,300.2 222.2,308.6 214.4,317.0 193.1,306.4\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"209.9,294.7 204.3,297.5 204.3,306.5 209.9,303.7\" fill=\"#2a4057\"><\/polygon><polygon points=\"201.0,295.8 204.3,297.5 204.3,306.5 201.0,304.8\" fill=\"#3e5269\"><\/polygon><polygon points=\"206.6,293.0 209.9,294.7 204.3,297.5 201.0,295.8\" fill=\"#536b82\"><\/polygon><polygon points=\"208.8,303.2 203.2,306.0 203.2,308.0 208.8,305.2\" fill=\"#1d2c40\"><\/polygon><polygon points=\"199.8,304.4 203.2,306.0 203.2,308.0 199.8,306.4\" fill=\"#2a394e\"><\/polygon><polygon points=\"205.4,301.6 208.8,303.2 203.2,306.0 199.8,304.4\" fill=\"#435165\"><\/polygon><polygon points=\"215.5,297.5 209.9,300.3 209.9,309.3 215.5,306.5\" fill=\"#2a4057\"><\/polygon><polygon points=\"206.6,298.6 209.9,300.3 209.9,309.3 206.6,307.6\" fill=\"#3e5269\"><\/polygon><polygon points=\"212.2,295.8 215.5,297.5 209.9,300.3 206.6,298.6\" fill=\"#536b82\"><\/polygon><polygon points=\"214.4,306.0 208.8,308.8 208.8,310.8 214.4,308.0\" fill=\"#1d2c40\"><\/polygon><polygon points=\"205.4,307.2 208.8,308.8 208.8,310.8 205.4,309.2\" fill=\"#2a394e\"><\/polygon><polygon points=\"211.0,304.4 214.4,306.0 208.8,308.8 205.4,307.2\" fill=\"#435165\"><\/polygon><polygon points=\"217.2,287.8 210.5,291.1 210.5,301.1 217.2,297.8\" fill=\"#486a53\"><\/polygon><polygon points=\"199.3,285.5 210.5,291.1 210.5,301.1 199.3,295.5\" fill=\"#6b9175\"><\/polygon><polygon points=\"206.0,282.2 217.2,287.8 210.5,291.1 199.3,285.5\" fill=\"#a6bfa8\"><\/polygon><polygon points=\"205.4,284.4 199.8,287.2 199.8,294.2 205.4,291.4\" fill=\"#486a53\"><\/polygon><polygon points=\"196.5,285.6 199.8,287.2 199.8,294.2 196.5,292.6\" fill=\"#6b9175\"><\/polygon><polygon points=\"202.1,282.8 205.4,284.4 199.8,287.2 196.5,285.6\" fill=\"#a6bfa8\"><\/polygon><polygon points=\"205.3,291.5 200.8,293.7 200.8,296.7 205.3,294.5\" fill=\"#967664\"><\/polygon><polygon points=\"197.5,292.1 200.8,293.7 200.8,296.7 197.5,295.1\" fill=\"#bb947e\"><\/polygon><polygon points=\"202.0,289.8 205.3,291.5 200.8,293.7 197.5,292.1\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"220.0,291.7 214.4,294.5 214.4,301.5 220.0,298.7\" fill=\"#486a53\"><\/polygon><polygon points=\"211.0,292.8 214.4,294.5 214.4,301.5 211.0,299.8\" fill=\"#6b9175\"><\/polygon><polygon points=\"216.6,290.0 220.0,291.7 214.4,294.5 211.0,292.8\" fill=\"#a6bfa8\"><\/polygon><polygon points=\"219.9,298.8 215.4,301.0 215.4,304.0 219.9,301.8\" fill=\"#967664\"><\/polygon><polygon points=\"212.0,299.3 215.4,301.0 215.4,304.0 212.0,302.3\" fill=\"#bb947e\"><\/polygon><polygon points=\"216.5,297.1 219.9,298.8 215.4,301.0 212.0,299.3\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"215.7,279.8 207.9,283.7 207.9,290.7 215.7,286.8\" fill=\"#a57d66\"><\/polygon><polygon points=\"200.1,279.8 207.9,283.7 207.9,290.7 200.1,286.8\" fill=\"#cba68b\"><\/polygon><polygon points=\"207.9,275.9 215.7,279.8 207.9,283.7 200.1,279.8\" fill=\"#dfbea2\"><\/polygon><polygon points=\"216.2,279.0 207.9,283.2 207.9,285.0 216.2,280.8\" fill=\"#302e2a\"><\/polygon><polygon points=\"199.6,279.0 207.9,283.2 207.9,285.0 199.6,280.8\" fill=\"#42392f\"><\/polygon><polygon points=\"207.9,274.9 216.2,279.0 207.9,283.2 199.6,279.0\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"51\"><polygon points=\"864.0,302.8 839.4,315.1 839.4,318.1 864.0,305.8\" fill=\"#2e4848\"><\/polygon><polygon points=\"814.7,302.8 839.4,315.1 839.4,318.1 814.7,305.8\" fill=\"#405f58\"><\/polygon><polygon points=\"839.4,290.5 864.0,302.8 839.4,315.1 814.7,302.8\" fill=\"#647c70\"><\/polygon><polygon points=\"842.7,285.2 839.4,286.9 839.4,303.9 842.7,302.2\" fill=\"#544631\"><\/polygon><polygon points=\"836.0,285.2 839.4,286.9 839.4,303.9 836.0,302.2\" fill=\"#756149\"><\/polygon><polygon points=\"839.4,283.6 842.7,285.2 839.4,286.9 836.0,285.2\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"865.1,271.2 839.4,284.1 839.4,300.1 865.1,287.2\" fill=\"#416a55\"><\/polygon><polygon points=\"813.6,271.2 839.4,284.1 839.4,300.1 813.6,287.2\" fill=\"#63866c\"><\/polygon><polygon points=\"839.4,258.4 865.1,271.2 839.4,284.1 813.6,271.2\" fill=\"#8da98b\"><\/polygon><polygon points=\"858.4,259.2 839.4,268.8 839.4,280.8 858.4,271.2\" fill=\"#416a55\"><\/polygon><polygon points=\"820.3,259.2 839.4,268.8 839.4,280.8 820.3,271.2\" fill=\"#63866c\"><\/polygon><polygon points=\"839.4,249.7 858.4,259.2 839.4,268.8 820.3,259.2\" fill=\"#8da98b\"><\/polygon><polygon points=\"851.7,252.2 839.4,258.4 839.4,265.4 851.7,259.2\" fill=\"#416a55\"><\/polygon><polygon points=\"827.0,252.2 839.4,258.4 839.4,265.4 827.0,259.2\" fill=\"#63866c\"><\/polygon><polygon points=\"839.4,246.1 851.7,252.2 839.4,258.4 827.0,252.2\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object district\" data-district=\"3\" data-rise=\"\" data-depth=\"79\"><g id=\"bwrp-model-park\"><g class=\"building-piece\" data-layer=\"6\"><polygon points=\"483.2,313.0 400.3,354.4 400.3,356.4 483.2,315.0\" fill=\"#37565a\"><\/polygon><polygon points=\"321.9,315.2 400.3,354.4 400.3,356.4 321.9,317.2\" fill=\"#4c6b67\"><\/polygon><polygon points=\"404.8,273.8 483.2,313.0 400.3,354.4 321.9,315.2\" fill=\"#6d8581\"><\/polygon><polygon points=\"423.8,296.1 390.2,312.9 390.2,316.9 423.8,300.1\" fill=\"#506f83\"><\/polygon><polygon points=\"362.2,298.9 390.2,312.9 390.2,316.9 362.2,302.9\" fill=\"#7895a3\"><\/polygon><polygon points=\"395.8,282.1 423.8,296.1 390.2,312.9 362.2,298.9\" fill=\"#a8b8be\"><\/polygon><polygon points=\"417.1,295.1 390.2,308.6 390.2,309.6 417.1,296.1\" fill=\"#436b88\"><\/polygon><polygon points=\"369.0,297.9 390.2,308.6 390.2,309.6 369.0,298.9\" fill=\"#628eaa\"><\/polygon><polygon points=\"395.8,284.5 417.1,295.1 390.2,308.6 369.0,297.9\" fill=\"#7cafbf\"><\/polygon><polygon points=\"399.2,287.2 393.6,290.0 393.6,299.0 399.2,296.2\" fill=\"#4f7d97\"><\/polygon><polygon points=\"388.0,287.2 393.6,290.0 393.6,299.0 388.0,296.2\" fill=\"#6d9eaf\"><\/polygon><polygon points=\"393.6,284.4 399.2,287.2 393.6,290.0 388.0,287.2\" fill=\"#9cc9d5\"><\/polygon><polygon points=\"367.8,319.5 361.1,322.9 361.1,324.9 367.8,321.5\" fill=\"#65513f\"><\/polygon><polygon points=\"336.5,310.6 361.1,322.9 361.1,324.9 336.5,312.6\" fill=\"#836e52\"><\/polygon><polygon points=\"343.2,307.2 367.8,319.5 361.1,322.9 336.5,310.6\" fill=\"#b49a76\"><\/polygon><polygon points=\"369.0,312.0 366.7,313.1 366.7,320.1 369.0,319.0\" fill=\"#584b3b\"><\/polygon><polygon points=\"342.1,300.8 366.7,313.1 366.7,320.1 342.1,307.8\" fill=\"#81694e\"><\/polygon><polygon points=\"344.3,299.6 369.0,312.0 366.7,313.1 342.1,300.8\" fill=\"#ac9374\"><\/polygon><polygon points=\"348.8,312.0 343.2,314.8 343.2,319.8 348.8,317.0\" fill=\"#354858\"><\/polygon><polygon points=\"341.0,313.7 343.2,314.8 343.2,319.8 341.0,318.7\" fill=\"#4d6474\"><\/polygon><polygon points=\"346.6,310.9 348.8,312.0 343.2,314.8 341.0,313.7\" fill=\"#748793\"><\/polygon><polygon points=\"364.5,319.8 358.9,322.6 358.9,327.6 364.5,324.8\" fill=\"#354858\"><\/polygon><polygon points=\"356.6,321.5 358.9,322.6 358.9,327.6 356.6,326.5\" fill=\"#4d6474\"><\/polygon><polygon points=\"362.2,318.7 364.5,319.8 358.9,322.6 356.6,321.5\" fill=\"#748793\"><\/polygon><polygon points=\"476.5,310.0 469.8,313.4 469.8,315.4 476.5,312.0\" fill=\"#65513f\"><\/polygon><polygon points=\"445.1,301.0 469.8,313.4 469.8,315.4 445.1,303.0\" fill=\"#836e52\"><\/polygon><polygon points=\"451.8,297.7 476.5,310.0 469.8,313.4 445.1,301.0\" fill=\"#b49a76\"><\/polygon><polygon points=\"477.6,302.4 475.4,303.6 475.4,310.6 477.6,309.4\" fill=\"#584b3b\"><\/polygon><polygon points=\"450.7,291.2 475.4,303.6 475.4,310.6 450.7,298.2\" fill=\"#81694e\"><\/polygon><polygon points=\"453.0,290.1 477.6,302.4 475.4,303.6 450.7,291.2\" fill=\"#ac9374\"><\/polygon><polygon points=\"457.4,302.5 451.8,305.3 451.8,310.3 457.4,307.5\" fill=\"#354858\"><\/polygon><polygon points=\"449.6,304.2 451.8,305.3 451.8,310.3 449.6,309.2\" fill=\"#4d6474\"><\/polygon><polygon points=\"455.2,301.4 457.4,302.5 451.8,305.3 449.6,304.2\" fill=\"#748793\"><\/polygon><polygon points=\"473.1,310.3 467.5,313.1 467.5,318.1 473.1,315.3\" fill=\"#354858\"><\/polygon><polygon points=\"465.3,312.0 467.5,313.1 467.5,318.1 465.3,317.0\" fill=\"#4d6474\"><\/polygon><polygon points=\"470.9,309.2 473.1,310.3 467.5,313.1 465.3,312.0\" fill=\"#748793\"><\/polygon><polygon points=\"422.7,281.0 407.0,288.8 407.0,292.8 422.7,285.0\" fill=\"#385445\"><\/polygon><polygon points=\"390.2,280.4 407.0,288.8 407.0,292.8 390.2,284.4\" fill=\"#4b6956\"><\/polygon><polygon points=\"405.9,272.6 422.7,281.0 407.0,288.8 390.2,280.4\" fill=\"#637f6a\"><\/polygon><polygon points=\"416.0,276.0 407.0,280.5 407.0,285.5 416.0,281.0\" fill=\"#576f55\"><\/polygon><polygon points=\"397.0,275.4 407.0,280.5 407.0,285.5 397.0,280.4\" fill=\"#7d9670\"><\/polygon><polygon points=\"405.9,271.0 416.0,276.0 407.0,280.5 397.0,275.4\" fill=\"#9aaa85\"><\/polygon><polygon points=\"423.8,336.4 408.2,344.3 408.2,348.3 423.8,340.4\" fill=\"#385445\"><\/polygon><polygon points=\"391.4,335.9 408.2,344.3 408.2,348.3 391.4,339.9\" fill=\"#4b6956\"><\/polygon><polygon points=\"407.0,328.0 423.8,336.4 408.2,344.3 391.4,335.9\" fill=\"#637f6a\"><\/polygon><polygon points=\"417.1,331.4 408.2,335.9 408.2,340.9 417.1,336.4\" fill=\"#576f55\"><\/polygon><polygon points=\"398.1,330.9 408.2,335.9 408.2,340.9 398.1,335.9\" fill=\"#7d9670\"><\/polygon><polygon points=\"407.0,326.4 417.1,331.4 408.2,335.9 398.1,330.9\" fill=\"#9aaa85\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"5\"><ellipse data-life=\"water\" cx=\"393.6\" cy=\"295.8\" rx=\"9\" ry=\"4\" fill=\"none\" stroke=\"#c9e9e9\" stroke-width=\".8\" opacity=\".6\"><\/ellipse><\/g><g class=\"building-piece crafted-detail\" data-layer=\"6\"><g data-ambient=\"fountain\"><path d=\"M389.6 295.8Q392.6 272.8 393.6 286.8Q395.6 274.8 398.6 295.8\" fill=\"none\" stroke=\"#c5eaf2\" stroke-width=\"1.15\" stroke-linecap=\"round\" opacity=\".8\"><\/path><\/g><ellipse data-ambient=\"ripple\" data-index=\"0\" cx=\"393.6\" cy=\"295.8\" rx=\"8\" ry=\"3.2\" fill=\"none\" stroke=\"#c0e8e9\" stroke-width=\".7\" opacity=\".4\"><\/ellipse><ellipse data-ambient=\"ripple\" data-index=\"1\" cx=\"393.6\" cy=\"295.8\" rx=\"8\" ry=\"3.2\" fill=\"none\" stroke=\"#c0e8e9\" stroke-width=\".7\" opacity=\".4\"><\/ellipse><\/g><\/g><\/g><g class=\"city-object street-furniture\" data-rise=\"\" data-depth=\"83\"><polygon points=\"324.2,326.8 317.4,330.2 317.4,332.2 324.2,328.8\" fill=\"#65513f\"><\/polygon><polygon points=\"292.8,317.8 317.4,330.2 317.4,332.2 292.8,319.8\" fill=\"#836e52\"><\/polygon><polygon points=\"299.5,314.5 324.2,326.8 317.4,330.2 292.8,317.8\" fill=\"#b49a76\"><\/polygon><polygon points=\"325.3,319.2 323.0,320.4 323.0,327.4 325.3,326.2\" fill=\"#584b3b\"><\/polygon><polygon points=\"298.4,308.0 323.0,320.4 323.0,327.4 298.4,315.0\" fill=\"#81694e\"><\/polygon><polygon points=\"300.6,306.9 325.3,319.2 323.0,320.4 298.4,308.0\" fill=\"#ac9374\"><\/polygon><polygon points=\"305.1,319.3 299.5,322.1 299.5,327.1 305.1,324.3\" fill=\"#354858\"><\/polygon><polygon points=\"297.3,321.0 299.5,322.1 299.5,327.1 297.3,326.0\" fill=\"#4d6474\"><\/polygon><polygon points=\"302.9,318.2 305.1,319.3 299.5,322.1 297.3,321.0\" fill=\"#748793\"><\/polygon><polygon points=\"320.8,327.1 315.2,329.9 315.2,334.9 320.8,332.1\" fill=\"#354858\"><\/polygon><polygon points=\"313.0,328.8 315.2,329.9 315.2,334.9 313.0,333.8\" fill=\"#4d6474\"><\/polygon><polygon points=\"318.6,326.0 320.8,327.1 315.2,329.9 313.0,328.8\" fill=\"#748793\"><\/polygon><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"125\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"1\"><g data-ambient=\"person\" data-index=\"3\"><polygon points=\"291.7,342.2 308.5,350.6 300.6,359.0 279.4,348.4\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"296.2,336.7 290.6,339.5 290.6,348.5 296.2,345.7\" fill=\"#2a4057\"><\/polygon><polygon points=\"287.2,337.8 290.6,339.5 290.6,348.5 287.2,346.8\" fill=\"#3e5269\"><\/polygon><polygon points=\"292.8,335.0 296.2,336.7 290.6,339.5 287.2,337.8\" fill=\"#536b82\"><\/polygon><polygon points=\"295.0,345.2 289.4,348.0 289.4,350.0 295.0,347.2\" fill=\"#1d2c40\"><\/polygon><polygon points=\"286.1,346.4 289.4,348.0 289.4,350.0 286.1,348.4\" fill=\"#2a394e\"><\/polygon><polygon points=\"291.7,343.6 295.0,345.2 289.4,348.0 286.1,346.4\" fill=\"#435165\"><\/polygon><polygon points=\"301.8,339.5 296.2,342.3 296.2,351.3 301.8,348.5\" fill=\"#2a4057\"><\/polygon><polygon points=\"292.8,340.6 296.2,342.3 296.2,351.3 292.8,349.6\" fill=\"#3e5269\"><\/polygon><polygon points=\"298.4,337.8 301.8,339.5 296.2,342.3 292.8,340.6\" fill=\"#536b82\"><\/polygon><polygon points=\"300.6,348.0 295.0,350.8 295.0,352.8 300.6,350.0\" fill=\"#1d2c40\"><\/polygon><polygon points=\"291.7,349.2 295.0,350.8 295.0,352.8 291.7,351.2\" fill=\"#2a394e\"><\/polygon><polygon points=\"297.3,346.4 300.6,348.0 295.0,350.8 291.7,349.2\" fill=\"#435165\"><\/polygon><polygon points=\"303.4,329.8 296.7,333.1 296.7,343.1 303.4,339.8\" fill=\"#6b555a\"><\/polygon><polygon points=\"285.5,327.5 296.7,333.1 296.7,343.1 285.5,337.5\" fill=\"#957572\"><\/polygon><polygon points=\"292.2,324.2 303.4,329.8 296.7,333.1 285.5,327.5\" fill=\"#c4a5a0\"><\/polygon><polygon points=\"291.7,326.4 286.1,329.2 286.1,336.2 291.7,333.4\" fill=\"#6b555a\"><\/polygon><polygon points=\"282.7,327.6 286.1,329.2 286.1,336.2 282.7,334.6\" fill=\"#957572\"><\/polygon><polygon points=\"288.3,324.8 291.7,326.4 286.1,329.2 282.7,327.6\" fill=\"#c4a5a0\"><\/polygon><polygon points=\"291.6,333.5 287.1,335.7 287.1,338.7 291.6,336.5\" fill=\"#967664\"><\/polygon><polygon points=\"283.7,334.1 287.1,335.7 287.1,338.7 283.7,337.1\" fill=\"#bb947e\"><\/polygon><polygon points=\"288.2,331.8 291.6,333.5 287.1,335.7 283.7,334.1\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"306.2,333.7 300.6,336.5 300.6,343.5 306.2,340.7\" fill=\"#6b555a\"><\/polygon><polygon points=\"297.3,334.8 300.6,336.5 300.6,343.5 297.3,341.8\" fill=\"#957572\"><\/polygon><polygon points=\"302.9,332.0 306.2,333.7 300.6,336.5 297.3,334.8\" fill=\"#c4a5a0\"><\/polygon><polygon points=\"306.1,340.8 301.6,343.0 301.6,346.0 306.1,343.8\" fill=\"#967664\"><\/polygon><polygon points=\"298.3,341.3 301.6,343.0 301.6,346.0 298.3,344.3\" fill=\"#bb947e\"><\/polygon><polygon points=\"302.8,339.1 306.1,340.8 301.6,343.0 298.3,341.3\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"302.0,321.8 294.1,325.7 294.1,332.7 302.0,328.8\" fill=\"#a57d66\"><\/polygon><polygon points=\"286.3,321.8 294.1,325.7 294.1,332.7 286.3,328.8\" fill=\"#cba68b\"><\/polygon><polygon points=\"294.1,317.9 302.0,321.8 294.1,325.7 286.3,321.8\" fill=\"#dfbea2\"><\/polygon><polygon points=\"302.4,321.0 294.1,325.2 294.1,327.0 302.4,322.8\" fill=\"#302e2a\"><\/polygon><polygon points=\"285.9,321.0 294.1,325.2 294.1,327.0 285.9,322.8\" fill=\"#42392f\"><\/polygon><polygon points=\"294.1,316.9 302.4,321.0 294.1,325.2 285.9,321.0\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object streetlamp\" data-rise=\"\" data-depth=\"174\"><polygon points=\"366.7,371.0 361.1,373.8 361.1,375.8 366.7,373.0\" fill=\"#354c60\"><\/polygon><polygon points=\"355.5,371.0 361.1,373.8 361.1,375.8 355.5,373.0\" fill=\"#536a7b\"><\/polygon><polygon points=\"361.1,368.2 366.7,371.0 361.1,373.8 355.5,371.0\" fill=\"#8194a3\"><\/polygon><polygon points=\"362.9,338.3 361.1,339.2 361.1,372.2 362.9,371.3\" fill=\"#4f6a81\"><\/polygon><polygon points=\"359.3,338.3 361.1,339.2 361.1,372.2 359.3,371.3\" fill=\"#728b9e\"><\/polygon><polygon points=\"361.1,337.4 362.9,338.3 361.1,339.2 359.3,338.3\" fill=\"#a3b6c4\"><\/polygon><polygon points=\"370.1,336.6 361.1,341.0 361.1,343.0 370.1,338.6\" fill=\"#658799\"><\/polygon><polygon points=\"352.2,336.6 361.1,341.0 361.1,343.0 352.2,338.6\" fill=\"#9bb8c4\"><\/polygon><polygon points=\"361.1,332.1 370.1,336.6 361.1,341.0 352.2,336.6\" fill=\"#d6e0dc\"><\/polygon><circle class=\"lamp-glow\" cx=\"361.1\" cy=\"336.4\" r=\"5\" fill=\"#d7e4bc\" opacity=\".4\"><\/circle><\/g><g class=\"city-object streetlamp\" data-rise=\"\" data-depth=\"177\"><polygon points=\"647.8,372.7 642.2,375.5 642.2,377.5 647.8,374.7\" fill=\"#354c60\"><\/polygon><polygon points=\"636.6,372.7 642.2,375.5 642.2,377.5 636.6,374.7\" fill=\"#536a7b\"><\/polygon><polygon points=\"642.2,369.9 647.8,372.7 642.2,375.5 636.6,372.7\" fill=\"#8194a3\"><\/polygon><polygon points=\"644.0,340.0 642.2,340.9 642.2,373.9 644.0,373.0\" fill=\"#4f6a81\"><\/polygon><polygon points=\"640.4,340.0 642.2,340.9 642.2,373.9 640.4,373.0\" fill=\"#728b9e\"><\/polygon><polygon points=\"642.2,339.1 644.0,340.0 642.2,340.9 640.4,340.0\" fill=\"#a3b6c4\"><\/polygon><polygon points=\"651.2,338.2 642.2,342.7 642.2,344.7 651.2,340.2\" fill=\"#658799\"><\/polygon><polygon points=\"633.3,338.2 642.2,342.7 642.2,344.7 633.3,340.2\" fill=\"#9bb8c4\"><\/polygon><polygon points=\"642.2,333.8 651.2,338.2 642.2,342.7 633.3,338.2\" fill=\"#d6e0dc\"><\/polygon><circle class=\"lamp-glow\" cx=\"642.2\" cy=\"338.1\" r=\"5\" fill=\"#d7e4bc\" opacity=\".4\"><\/circle><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"184\"><polygon points=\"399.2,377.3 374.6,389.6 374.6,392.6 399.2,380.3\" fill=\"#2e4848\"><\/polygon><polygon points=\"349.9,377.3 374.6,389.6 374.6,392.6 349.9,380.3\" fill=\"#405f58\"><\/polygon><polygon points=\"374.6,365.0 399.2,377.3 374.6,389.6 349.9,377.3\" fill=\"#647c70\"><\/polygon><polygon points=\"377.9,359.7 374.6,361.4 374.6,378.4 377.9,376.7\" fill=\"#544631\"><\/polygon><polygon points=\"371.2,359.7 374.6,361.4 374.6,378.4 371.2,376.7\" fill=\"#756149\"><\/polygon><polygon points=\"374.6,358.0 377.9,359.7 374.6,361.4 371.2,359.7\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"400.3,345.7 374.6,358.6 374.6,374.6 400.3,361.7\" fill=\"#416a55\"><\/polygon><polygon points=\"348.8,345.7 374.6,358.6 374.6,374.6 348.8,361.7\" fill=\"#63866c\"><\/polygon><polygon points=\"374.6,332.8 400.3,345.7 374.6,358.6 348.8,345.7\" fill=\"#8da98b\"><\/polygon><polygon points=\"393.6,333.7 374.6,343.2 374.6,355.2 393.6,345.7\" fill=\"#416a55\"><\/polygon><polygon points=\"355.5,333.7 374.6,343.2 374.6,355.2 355.5,345.7\" fill=\"#63866c\"><\/polygon><polygon points=\"374.6,324.2 393.6,333.7 374.6,343.2 355.5,333.7\" fill=\"#8da98b\"><\/polygon><polygon points=\"386.9,326.7 374.6,332.9 374.6,339.9 386.9,333.7\" fill=\"#416a55\"><\/polygon><polygon points=\"362.2,326.7 374.6,332.9 374.6,339.9 362.2,333.7\" fill=\"#63866c\"><\/polygon><polygon points=\"374.6,320.6 386.9,326.7 374.6,332.9 362.2,326.7\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"198\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"-1\"><g data-ambient=\"person\" data-index=\"4\"><polygon points=\"369.0,383.1 385.8,391.5 377.9,399.9 356.6,389.2\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"373.4,377.6 367.8,380.4 367.8,389.4 373.4,386.6\" fill=\"#2a4057\"><\/polygon><polygon points=\"364.5,378.7 367.8,380.4 367.8,389.4 364.5,387.7\" fill=\"#3e5269\"><\/polygon><polygon points=\"370.1,375.9 373.4,377.6 367.8,380.4 364.5,378.7\" fill=\"#536b82\"><\/polygon><polygon points=\"372.3,386.1 366.7,388.9 366.7,390.9 372.3,388.1\" fill=\"#1d2c40\"><\/polygon><polygon points=\"363.4,387.2 366.7,388.9 366.7,390.9 363.4,389.2\" fill=\"#2a394e\"><\/polygon><polygon points=\"369.0,384.4 372.3,386.1 366.7,388.9 363.4,387.2\" fill=\"#435165\"><\/polygon><polygon points=\"379.0,380.4 373.4,383.2 373.4,392.2 379.0,389.4\" fill=\"#2a4057\"><\/polygon><polygon points=\"370.1,381.5 373.4,383.2 373.4,392.2 370.1,390.5\" fill=\"#3e5269\"><\/polygon><polygon points=\"375.7,378.7 379.0,380.4 373.4,383.2 370.1,381.5\" fill=\"#536b82\"><\/polygon><polygon points=\"377.9,388.9 372.3,391.7 372.3,393.7 377.9,390.9\" fill=\"#1d2c40\"><\/polygon><polygon points=\"369.0,390.0 372.3,391.7 372.3,393.7 369.0,392.0\" fill=\"#2a394e\"><\/polygon><polygon points=\"374.6,387.2 377.9,388.9 372.3,391.7 369.0,390.0\" fill=\"#435165\"><\/polygon><polygon points=\"380.7,370.6 374.0,374.0 374.0,384.0 380.7,380.6\" fill=\"#37566e\"><\/polygon><polygon points=\"362.8,368.4 374.0,374.0 374.0,384.0 362.8,378.4\" fill=\"#4b7899\"><\/polygon><polygon points=\"369.5,365.0 380.7,370.6 374.0,374.0 362.8,368.4\" fill=\"#7fabc8\"><\/polygon><polygon points=\"369.0,367.3 363.4,370.1 363.4,377.1 369.0,374.3\" fill=\"#37566e\"><\/polygon><polygon points=\"360.0,368.4 363.4,370.1 363.4,377.1 360.0,375.4\" fill=\"#4b7899\"><\/polygon><polygon points=\"365.6,365.6 369.0,367.3 363.4,370.1 360.0,368.4\" fill=\"#7fabc8\"><\/polygon><polygon points=\"368.8,374.4 364.4,376.6 364.4,379.6 368.8,377.4\" fill=\"#967664\"><\/polygon><polygon points=\"361.0,374.9 364.4,376.6 364.4,379.6 361.0,377.9\" fill=\"#bb947e\"><\/polygon><polygon points=\"365.5,372.7 368.8,374.4 364.4,376.6 361.0,374.9\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"383.5,374.6 377.9,377.4 377.9,384.4 383.5,381.6\" fill=\"#37566e\"><\/polygon><polygon points=\"374.6,375.7 377.9,377.4 377.9,384.4 374.6,382.7\" fill=\"#4b7899\"><\/polygon><polygon points=\"380.2,372.9 383.5,374.6 377.9,377.4 374.6,375.7\" fill=\"#7fabc8\"><\/polygon><polygon points=\"383.4,381.7 378.9,383.9 378.9,386.9 383.4,384.7\" fill=\"#967664\"><\/polygon><polygon points=\"375.6,382.2 378.9,383.9 378.9,386.9 375.6,385.2\" fill=\"#bb947e\"><\/polygon><polygon points=\"380.0,380.0 383.4,381.7 378.9,383.9 375.6,382.2\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"379.3,362.7 371.4,366.6 371.4,373.6 379.3,369.7\" fill=\"#a57d66\"><\/polygon><polygon points=\"363.6,362.7 371.4,366.6 371.4,373.6 363.6,369.7\" fill=\"#cba68b\"><\/polygon><polygon points=\"371.4,358.8 379.3,362.7 371.4,366.6 363.6,362.7\" fill=\"#dfbea2\"><\/polygon><polygon points=\"379.7,361.9 371.4,366.0 371.4,367.8 379.7,363.7\" fill=\"#302e2a\"><\/polygon><polygon points=\"363.1,361.9 371.4,366.0 371.4,367.8 363.1,363.7\" fill=\"#42392f\"><\/polygon><polygon points=\"371.4,357.7 379.7,361.9 371.4,366.0 363.1,361.9\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object district\" data-district=\"2\" data-rise=\"\" data-depth=\"201\"><g id=\"bwrp-model-bank\"><g class=\"building-piece\" data-layer=\"0\"><polygon points=\"514.6,339.4 607.5,385.9 517.9,435.2 420.5,386.4\" fill=\"#0a1421\" opacity=\".27\"><\/polygon><polygon points=\"595.2,373.8 512.3,415.3 512.3,422.3 595.2,380.8\" fill=\"#354b5e\"><\/polygon><polygon points=\"431.7,375.0 512.3,415.3 512.3,422.3 431.7,382.0\" fill=\"#4e6474\"><\/polygon><polygon points=\"514.6,333.5 595.2,373.8 512.3,415.3 431.7,375.0\" fill=\"#81939f\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"0.7\"><polygon points=\"586.2,344.2 512.3,381.2 512.3,410.8 586.2,373.8\" fill=\"#30536e\"><\/polygon><polygon points=\"440.6,345.4 512.3,381.2 512.3,410.8 440.6,375.0\" fill=\"#466e85\"><\/polygon><polygon points=\"514.6,308.4 586.2,344.2 512.3,381.2 440.6,345.4\" fill=\"#7598ac\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"1.2\"><polygon points=\"586.2,314.6 512.3,351.6 512.3,381.2 586.2,344.2\" fill=\"#30536e\"><\/polygon><polygon points=\"440.6,315.8 512.3,351.6 512.3,381.2 440.6,345.4\" fill=\"#466e85\"><\/polygon><polygon points=\"514.6,278.8 586.2,314.6 512.3,351.6 440.6,315.8\" fill=\"#7598ac\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"1.7\"><polygon points=\"586.2,285.0 512.3,322.0 512.3,351.6 586.2,314.6\" fill=\"#30536e\"><\/polygon><polygon points=\"440.6,286.2 512.3,322.0 512.3,351.6 440.6,315.8\" fill=\"#466e85\"><\/polygon><polygon points=\"514.6,249.2 586.2,285.0 512.3,322.0 440.6,286.2\" fill=\"#7598ac\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"2.2\"><polygon points=\"586.2,255.4 512.3,292.4 512.3,322.0 586.2,285.0\" fill=\"#30536e\"><\/polygon><polygon points=\"440.6,256.6 512.3,292.4 512.3,322.0 440.6,286.2\" fill=\"#466e85\"><\/polygon><polygon points=\"514.6,219.6 586.2,255.4 512.3,292.4 440.6,256.6\" fill=\"#7598ac\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"2.7\"><polygon points=\"586.2,225.8 512.3,262.8 512.3,292.4 586.2,255.4\" fill=\"#30536e\"><\/polygon><polygon points=\"440.6,227.0 512.3,262.8 512.3,292.4 440.6,256.6\" fill=\"#466e85\"><\/polygon><polygon points=\"514.6,190.0 586.2,225.8 512.3,262.8 440.6,227.0\" fill=\"#7598ac\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.2\"><polygon points=\"588.5,343.0 512.3,381.1 512.3,382.3 588.5,344.2\" fill=\"#506f85\"><\/polygon><polygon points=\"438.4,344.2 512.3,381.1 512.3,382.3 438.4,345.4\" fill=\"#728d9d\"><\/polygon><polygon points=\"514.6,306.1 588.5,343.0 512.3,381.1 438.4,344.2\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"588.5,313.4 512.3,351.5 512.3,352.7 588.5,314.6\" fill=\"#506f85\"><\/polygon><polygon points=\"438.4,314.6 512.3,351.5 512.3,352.7 438.4,315.8\" fill=\"#728d9d\"><\/polygon><polygon points=\"514.6,276.5 588.5,313.4 512.3,351.5 438.4,314.6\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"588.5,283.8 512.3,321.9 512.3,323.1 588.5,285.0\" fill=\"#506f85\"><\/polygon><polygon points=\"438.4,285.0 512.3,321.9 512.3,323.1 438.4,286.2\" fill=\"#728d9d\"><\/polygon><polygon points=\"514.6,246.9 588.5,283.8 512.3,321.9 438.4,285.0\" fill=\"#b0c8d2\"><\/polygon><polygon points=\"588.5,254.2 512.3,292.3 512.3,293.5 588.5,255.4\" fill=\"#506f85\"><\/polygon><polygon points=\"438.4,255.4 512.3,292.3 512.3,293.5 438.4,256.6\" fill=\"#728d9d\"><\/polygon><polygon points=\"514.6,217.3 588.5,254.2 512.3,292.3 438.4,255.4\" fill=\"#b0c8d2\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"3.7\"><polygon points=\"443.6,228.9 442.4,229.4 442.4,377.4 443.6,376.9\" fill=\"#486c87\"><\/polygon><polygon points=\"439.1,227.7 442.4,229.4 442.4,377.4 439.1,375.7\" fill=\"#7296a9\"><\/polygon><polygon points=\"440.2,227.2 443.6,228.9 442.4,229.4 439.1,227.7\" fill=\"#a0bdcb\"><\/polygon><polygon points=\"511.9,263.0 510.8,263.6 510.8,411.6 511.9,411.0\" fill=\"#486c87\"><\/polygon><polygon points=\"507.4,261.9 510.8,263.6 510.8,411.6 507.4,409.9\" fill=\"#7296a9\"><\/polygon><polygon points=\"508.5,261.3 511.9,263.0 510.8,263.6 507.4,261.9\" fill=\"#a0bdcb\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"4.2\"><polygon points=\"593.0,221.8 512.3,262.2 512.3,266.2 593.0,225.8\" fill=\"#4f6a83\"><\/polygon><polygon points=\"433.9,223.0 512.3,262.2 512.3,266.2 433.9,227.0\" fill=\"#738c9e\"><\/polygon><polygon points=\"514.6,182.6 593.0,221.8 512.3,262.2 433.9,223.0\" fill=\"#b1c4ce\"><\/polygon><polygon points=\"568.3,213.8 512.3,241.8 512.3,249.8 568.3,221.8\" fill=\"#607e94\"><\/polygon><polygon points=\"458.6,215.0 512.3,241.8 512.3,249.8 458.6,223.0\" fill=\"#92aab9\"><\/polygon><polygon points=\"514.6,187.0 568.3,213.8 512.3,241.8 458.6,215.0\" fill=\"#d2dfe5\"><\/polygon><polygon points=\"557.1,211.8 512.3,234.2 512.3,236.2 557.1,213.8\" fill=\"#2c485c\"><\/polygon><polygon points=\"469.8,213.0 512.3,234.2 512.3,236.2 469.8,215.0\" fill=\"#416579\"><\/polygon><polygon points=\"514.6,190.6 557.1,211.8 512.3,234.2 469.8,213.0\" fill=\"#6b8fa5\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"4.9\"><polygon points=\"450.0,364.3 463.5,371.1 463.5,355.1 450.0,348.3\" fill=\"#253c50\"><\/polygon><polygon points=\"450.9,364.0 462.1,369.6 462.1,355.6 450.9,350.0\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"455.8,366.6 456.7,367.1 456.7,353.1 455.8,352.6\" fill=\"#547b91\"><\/polygon><polygon points=\"471.3,375.0 484.8,381.7 484.8,365.7 471.3,359.0\" fill=\"#253c50\"><\/polygon><polygon points=\"472.2,374.6 483.4,380.2 483.4,366.2 472.2,360.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"477.0,377.3 477.9,377.7 477.9,363.7 477.0,363.3\" fill=\"#547b91\"><\/polygon><polygon points=\"492.6,385.6 506.0,392.3 506.0,376.3 492.6,369.6\" fill=\"#253c50\"><\/polygon><polygon points=\"493.5,385.3 504.7,390.9 504.7,376.9 493.5,371.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"498.3,387.9 499.2,388.4 499.2,374.4 498.3,373.9\" fill=\"#547b91\"><\/polygon><polygon points=\"576.8,363.2 563.4,369.9 563.4,353.9 576.8,347.2\" fill=\"#22364b\"><\/polygon><polygon points=\"575.9,362.9 564.7,368.5 564.7,354.5 575.9,348.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"555.6,373.9 542.1,380.6 542.1,364.6 555.6,357.9\" fill=\"#22364b\"><\/polygon><polygon points=\"554.7,373.5 543.5,379.1 543.5,365.1 554.7,359.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"534.3,384.5 520.8,391.2 520.8,375.2 534.3,368.5\" fill=\"#22364b\"><\/polygon><polygon points=\"533.4,384.2 522.2,389.8 522.2,375.8 533.4,370.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"450.0,340.3 463.5,347.1 463.5,331.1 450.0,324.3\" fill=\"#253c50\"><\/polygon><polygon points=\"450.9,340.0 462.1,345.6 462.1,331.6 450.9,326.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"455.8,342.6 456.7,343.1 456.7,329.1 455.8,328.6\" fill=\"#547b91\"><\/polygon><polygon points=\"471.3,351.0 484.8,357.7 484.8,341.7 471.3,335.0\" fill=\"#253c50\"><\/polygon><polygon points=\"472.2,350.6 483.4,356.2 483.4,342.2 472.2,336.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"477.0,353.3 477.9,353.7 477.9,339.7 477.0,339.3\" fill=\"#547b91\"><\/polygon><polygon points=\"492.6,361.6 506.0,368.3 506.0,352.3 492.6,345.6\" fill=\"#253c50\"><\/polygon><polygon points=\"493.5,361.3 504.7,366.9 504.7,352.9 493.5,347.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"498.3,363.9 499.2,364.4 499.2,350.4 498.3,349.9\" fill=\"#547b91\"><\/polygon><polygon points=\"576.8,339.2 563.4,345.9 563.4,329.9 576.8,323.2\" fill=\"#22364b\"><\/polygon><polygon points=\"575.9,338.9 564.7,344.5 564.7,330.5 575.9,324.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"555.6,349.9 542.1,356.6 542.1,340.6 555.6,333.9\" fill=\"#22364b\"><\/polygon><polygon points=\"554.7,349.5 543.5,355.1 543.5,341.1 554.7,335.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"534.3,360.5 520.8,367.2 520.8,351.2 534.3,344.5\" fill=\"#22364b\"><\/polygon><polygon points=\"533.4,360.2 522.2,365.8 522.2,351.8 533.4,346.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"450.0,316.3 463.5,323.1 463.5,307.1 450.0,300.3\" fill=\"#253c50\"><\/polygon><polygon points=\"450.9,316.0 462.1,321.6 462.1,307.6 450.9,302.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"455.8,318.6 456.7,319.1 456.7,305.1 455.8,304.6\" fill=\"#547b91\"><\/polygon><polygon points=\"471.3,327.0 484.8,333.7 484.8,317.7 471.3,311.0\" fill=\"#253c50\"><\/polygon><polygon points=\"472.2,326.6 483.4,332.2 483.4,318.2 472.2,312.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"477.0,329.3 477.9,329.7 477.9,315.7 477.0,315.3\" fill=\"#547b91\"><\/polygon><polygon points=\"492.6,337.6 506.0,344.3 506.0,328.3 492.6,321.6\" fill=\"#253c50\"><\/polygon><polygon points=\"493.5,337.3 504.7,342.9 504.7,328.9 493.5,323.3\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"498.3,339.9 499.2,340.4 499.2,326.4 498.3,325.9\" fill=\"#547b91\"><\/polygon><polygon points=\"576.8,315.2 563.4,321.9 563.4,305.9 576.8,299.2\" fill=\"#22364b\"><\/polygon><polygon points=\"575.9,314.9 564.7,320.5 564.7,306.5 575.9,300.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"555.6,325.9 542.1,332.6 542.1,316.6 555.6,309.9\" fill=\"#22364b\"><\/polygon><polygon points=\"554.7,325.5 543.5,331.1 543.5,317.1 554.7,311.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"534.3,336.5 520.8,343.2 520.8,327.2 534.3,320.5\" fill=\"#22364b\"><\/polygon><polygon points=\"533.4,336.2 522.2,341.8 522.2,327.8 533.4,322.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"450.0,292.3 463.5,299.1 463.5,283.1 450.0,276.3\" fill=\"#253c50\"><\/polygon><polygon points=\"450.9,292.0 462.1,297.6 462.1,283.6 450.9,278.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"455.8,294.6 456.7,295.1 456.7,281.1 455.8,280.6\" fill=\"#547b91\"><\/polygon><polygon points=\"471.3,303.0 484.8,309.7 484.8,293.7 471.3,287.0\" fill=\"#253c50\"><\/polygon><polygon points=\"472.2,302.6 483.4,308.2 483.4,294.2 472.2,288.6\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"477.0,305.3 477.9,305.7 477.9,291.7 477.0,291.3\" fill=\"#547b91\"><\/polygon><polygon points=\"492.6,313.6 506.0,320.3 506.0,304.3 492.6,297.6\" fill=\"#253c50\"><\/polygon><polygon points=\"493.5,313.3 504.7,318.9 504.7,304.9 493.5,299.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"498.3,315.9 499.2,316.4 499.2,302.4 498.3,301.9\" fill=\"#547b91\"><\/polygon><polygon points=\"576.8,291.2 563.4,297.9 563.4,281.9 576.8,275.2\" fill=\"#22364b\"><\/polygon><polygon points=\"575.9,290.9 564.7,296.5 564.7,282.5 575.9,276.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"555.6,301.9 542.1,308.6 542.1,292.6 555.6,285.9\" fill=\"#22364b\"><\/polygon><polygon points=\"554.7,301.5 543.5,307.1 543.5,293.1 554.7,287.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"534.3,312.5 520.8,319.2 520.8,303.2 534.3,296.5\" fill=\"#22364b\"><\/polygon><polygon points=\"533.4,312.2 522.2,317.8 522.2,303.8 533.4,298.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"450.0,268.3 463.5,275.1 463.5,259.1 450.0,252.3\" fill=\"#253c50\"><\/polygon><polygon points=\"450.9,268.0 462.1,273.6 462.1,259.6 450.9,254.0\" fill=\"#e5d8ad\" class=\"window-pane\"><\/polygon><polygon points=\"455.8,270.6 456.7,271.1 456.7,257.1 455.8,256.6\" fill=\"#547b91\"><\/polygon><polygon points=\"471.3,279.0 484.8,285.7 484.8,269.7 471.3,263.0\" fill=\"#253c50\"><\/polygon><polygon points=\"472.2,278.6 483.4,284.2 483.4,270.2 472.2,264.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"477.0,281.3 477.9,281.7 477.9,267.7 477.0,267.3\" fill=\"#547b91\"><\/polygon><polygon points=\"492.6,289.6 506.0,296.3 506.0,280.3 492.6,273.6\" fill=\"#253c50\"><\/polygon><polygon points=\"493.5,289.3 504.7,294.9 504.7,280.9 493.5,275.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"498.3,291.9 499.2,292.4 499.2,278.4 498.3,277.9\" fill=\"#547b91\"><\/polygon><polygon points=\"576.8,267.2 563.4,273.9 563.4,257.9 576.8,251.2\" fill=\"#22364b\"><\/polygon><polygon points=\"575.9,266.9 564.7,272.5 564.7,258.5 575.9,252.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"555.6,277.9 542.1,284.6 542.1,268.6 555.6,261.9\" fill=\"#22364b\"><\/polygon><polygon points=\"554.7,277.5 543.5,283.1 543.5,269.1 554.7,263.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"534.3,288.5 520.8,295.2 520.8,279.2 534.3,272.5\" fill=\"#22364b\"><\/polygon><polygon points=\"533.4,288.2 522.2,293.8 522.2,279.8 533.4,274.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"450.0,244.3 463.5,251.1 463.5,235.1 450.0,228.3\" fill=\"#253c50\"><\/polygon><polygon points=\"450.9,244.0 462.1,249.6 462.1,235.6 450.9,230.0\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"455.8,246.6 456.7,247.1 456.7,233.1 455.8,232.6\" fill=\"#547b91\"><\/polygon><polygon points=\"471.3,255.0 484.8,261.7 484.8,245.7 471.3,239.0\" fill=\"#253c50\"><\/polygon><polygon points=\"472.2,254.6 483.4,260.2 483.4,246.2 472.2,240.6\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"477.0,257.3 477.9,257.7 477.9,243.7 477.0,243.3\" fill=\"#547b91\"><\/polygon><polygon points=\"492.6,265.6 506.0,272.3 506.0,256.3 492.6,249.6\" fill=\"#253c50\"><\/polygon><polygon points=\"493.5,265.3 504.7,270.9 504.7,256.9 493.5,251.3\" fill=\"#a6cee0\" class=\"window-pane\"><\/polygon><polygon points=\"498.3,267.9 499.2,268.4 499.2,254.4 498.3,253.9\" fill=\"#547b91\"><\/polygon><polygon points=\"576.8,243.2 563.4,249.9 563.4,233.9 576.8,227.2\" fill=\"#22364b\"><\/polygon><polygon points=\"575.9,242.9 564.7,248.5 564.7,234.5 575.9,228.9\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"555.6,253.9 542.1,260.6 542.1,244.6 555.6,237.9\" fill=\"#22364b\"><\/polygon><polygon points=\"554.7,253.5 543.5,259.1 543.5,245.1 554.7,239.5\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><polygon points=\"534.3,264.5 520.8,271.2 520.8,255.2 534.3,248.5\" fill=\"#22364b\"><\/polygon><polygon points=\"533.4,264.2 522.2,269.8 522.2,255.8 533.4,250.2\" fill=\"#80aeca\" class=\"window-pane\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"5.2\"><polygon points=\"486.6,374.0 485.4,374.6 485.4,399.6 486.6,399.0\" fill=\"#29495f\"><\/polygon><polygon points=\"463.0,363.4 485.4,374.6 485.4,399.6 463.0,388.4\" fill=\"#365c74\"><\/polygon><polygon points=\"464.2,362.8 486.6,374.0 485.4,374.6 463.0,363.4\" fill=\"#7eacbf\"><\/polygon><polygon points=\"488.8,400.2 477.6,405.8 477.6,407.8 488.8,402.2\" fill=\"#4c677c\"><\/polygon><polygon points=\"450.7,392.3 477.6,405.8 477.6,407.8 450.7,394.3\" fill=\"#718899\"><\/polygon><polygon points=\"461.9,386.7 488.8,400.2 477.6,405.8 450.7,392.3\" fill=\"#acbac2\"><\/polygon><polygon points=\"492.2,372.7 477.6,380.0 477.6,382.0 492.2,374.7\" fill=\"#44677f\"><\/polygon><polygon points=\"446.2,364.3 477.6,380.0 477.6,382.0 446.2,366.3\" fill=\"#6a899d\"><\/polygon><polygon points=\"460.8,357.0 492.2,372.7 477.6,380.0 446.2,364.3\" fill=\"#b3cbd7\"><\/polygon><\/g><g class=\"building-piece facade-finish\" data-layer=\"5.4\"><path d=\"M440.5 364.0 L512.2 399.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 362.9 L512.5 399.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 352.0 L512.2 387.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 350.9 L512.5 387.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 340.0 L512.2 375.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 338.9 L512.5 375.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 328.0 L512.2 363.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 326.9 L512.5 363.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 316.0 L512.2 351.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 314.9 L512.5 351.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 304.0 L512.2 339.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 302.9 L512.5 339.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 292.0 L512.2 327.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 290.9 L512.5 327.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 280.0 L512.2 315.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 278.9 L512.5 315.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 268.0 L512.2 303.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 266.9 L512.5 303.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 256.0 L512.2 291.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 254.9 L512.5 291.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><path d=\"M440.5 244.0 L512.2 279.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".18\"><\/path><path d=\"M586.4 242.9 L512.5 279.9\" fill=\"none\" stroke=\"#d4e2e7\" stroke-width=\"0.45\" opacity=\".13\"><\/path><polygon points=\"463.8,370.6 461.6,371.7 461.6,373.0 463.8,371.9\" fill=\"#58798f\"><\/polygon><polygon points=\"448.1,365.0 461.6,371.7 461.6,373.0 448.1,366.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"450.4,363.9 463.8,370.6 461.6,371.7 448.1,365.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M450.6 357.2 L461.8 362.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"451.6,352.8 453.9,353.9 459.5,366.7 457.2,365.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"485.1,381.2 482.9,382.3 482.9,383.6 485.1,382.5\" fill=\"#58798f\"><\/polygon><polygon points=\"469.4,375.6 482.9,382.3 482.9,383.6 469.4,376.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"471.7,374.5 485.1,381.2 482.9,382.3 469.4,375.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M471.9 367.8 L483.1 373.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"472.9,363.4 475.1,364.6 480.7,377.4 478.5,376.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"506.4,391.9 504.1,393.0 504.1,394.3 506.4,393.2\" fill=\"#58798f\"><\/polygon><polygon points=\"490.7,386.3 504.1,393.0 504.1,394.3 490.7,387.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"492.9,385.1 506.4,391.9 504.1,393.0 490.7,386.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M493.2 378.5 L504.4 384.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"494.2,374.1 496.4,375.2 502.0,388.0 499.8,386.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M570.6 365.8 L570.6 351.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M576.2 356.0 L565.0 361.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"578.7,363.9 565.3,370.6 565.3,371.9 578.7,365.2\" fill=\"#426881\"><\/polygon><polygon points=\"563.1,369.5 565.3,370.6 565.3,371.9 563.1,370.8\" fill=\"#63869d\"><\/polygon><polygon points=\"576.5,362.7 578.7,363.9 565.3,370.6 563.1,369.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M549.3 376.4 L549.3 362.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M554.9 366.6 L543.7 372.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"557.5,374.5 544.0,381.2 544.0,382.5 557.5,375.8\" fill=\"#426881\"><\/polygon><polygon points=\"541.8,380.1 544.0,381.2 544.0,382.5 541.8,381.4\" fill=\"#63869d\"><\/polygon><polygon points=\"555.2,373.4 557.5,374.5 544.0,381.2 541.8,380.1\" fill=\"#9ab5c4\"><\/polygon><path d=\"M528.0 387.1 L528.0 373.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M533.6 377.3 L522.4 382.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"536.2,385.1 522.7,391.9 522.7,393.2 536.2,386.4\" fill=\"#426881\"><\/polygon><polygon points=\"520.5,390.7 522.7,391.9 522.7,393.2 520.5,392.0\" fill=\"#63869d\"><\/polygon><polygon points=\"533.9,384.0 536.2,385.1 522.7,391.9 520.5,390.7\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"463.8,346.6 461.6,347.7 461.6,349.0 463.8,347.9\" fill=\"#58798f\"><\/polygon><polygon points=\"448.1,341.0 461.6,347.7 461.6,349.0 448.1,342.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"450.4,339.9 463.8,346.6 461.6,347.7 448.1,341.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M450.6 333.2 L461.8 338.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"451.6,328.8 453.9,329.9 459.5,342.7 457.2,341.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"485.1,357.2 482.9,358.3 482.9,359.6 485.1,358.5\" fill=\"#58798f\"><\/polygon><polygon points=\"469.4,351.6 482.9,358.3 482.9,359.6 469.4,352.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"471.7,350.5 485.1,357.2 482.9,358.3 469.4,351.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M471.9 343.8 L483.1 349.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"472.9,339.4 475.1,340.6 480.7,353.4 478.5,352.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"506.4,367.9 504.1,369.0 504.1,370.3 506.4,369.2\" fill=\"#58798f\"><\/polygon><polygon points=\"490.7,362.3 504.1,369.0 504.1,370.3 490.7,363.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"492.9,361.1 506.4,367.9 504.1,369.0 490.7,362.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M493.2 354.5 L504.4 360.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"494.2,350.1 496.4,351.2 502.0,364.0 499.8,362.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M570.6 341.8 L570.6 327.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M576.2 332.0 L565.0 337.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"578.7,339.9 565.3,346.6 565.3,347.9 578.7,341.2\" fill=\"#426881\"><\/polygon><polygon points=\"563.1,345.5 565.3,346.6 565.3,347.9 563.1,346.8\" fill=\"#63869d\"><\/polygon><polygon points=\"576.5,338.7 578.7,339.9 565.3,346.6 563.1,345.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M549.3 352.4 L549.3 338.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M554.9 342.6 L543.7 348.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"557.5,350.5 544.0,357.2 544.0,358.5 557.5,351.8\" fill=\"#426881\"><\/polygon><polygon points=\"541.8,356.1 544.0,357.2 544.0,358.5 541.8,357.4\" fill=\"#63869d\"><\/polygon><polygon points=\"555.2,349.4 557.5,350.5 544.0,357.2 541.8,356.1\" fill=\"#9ab5c4\"><\/polygon><path d=\"M528.0 363.1 L528.0 349.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M533.6 353.3 L522.4 358.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"536.2,361.1 522.7,367.9 522.7,369.2 536.2,362.4\" fill=\"#426881\"><\/polygon><polygon points=\"520.5,366.7 522.7,367.9 522.7,369.2 520.5,368.0\" fill=\"#63869d\"><\/polygon><polygon points=\"533.9,360.0 536.2,361.1 522.7,367.9 520.5,366.7\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"463.8,322.6 461.6,323.7 461.6,325.0 463.8,323.9\" fill=\"#58798f\"><\/polygon><polygon points=\"448.1,317.0 461.6,323.7 461.6,325.0 448.1,318.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"450.4,315.9 463.8,322.6 461.6,323.7 448.1,317.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M450.6 309.2 L461.8 314.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"451.6,304.8 453.9,305.9 459.5,318.7 457.2,317.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"485.1,333.2 482.9,334.3 482.9,335.6 485.1,334.5\" fill=\"#58798f\"><\/polygon><polygon points=\"469.4,327.6 482.9,334.3 482.9,335.6 469.4,328.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"471.7,326.5 485.1,333.2 482.9,334.3 469.4,327.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M471.9 319.8 L483.1 325.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"472.9,315.4 475.1,316.6 480.7,329.4 478.5,328.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"506.4,343.9 504.1,345.0 504.1,346.3 506.4,345.2\" fill=\"#58798f\"><\/polygon><polygon points=\"490.7,338.3 504.1,345.0 504.1,346.3 490.7,339.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"492.9,337.1 506.4,343.9 504.1,345.0 490.7,338.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M493.2 330.5 L504.4 336.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"494.2,326.1 496.4,327.2 502.0,340.0 499.8,338.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M570.6 317.8 L570.6 303.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M576.2 308.0 L565.0 313.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"578.7,315.9 565.3,322.6 565.3,323.9 578.7,317.2\" fill=\"#426881\"><\/polygon><polygon points=\"563.1,321.5 565.3,322.6 565.3,323.9 563.1,322.8\" fill=\"#63869d\"><\/polygon><polygon points=\"576.5,314.7 578.7,315.9 565.3,322.6 563.1,321.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M549.3 328.4 L549.3 314.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M554.9 318.6 L543.7 324.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"557.5,326.5 544.0,333.2 544.0,334.5 557.5,327.8\" fill=\"#426881\"><\/polygon><polygon points=\"541.8,332.1 544.0,333.2 544.0,334.5 541.8,333.4\" fill=\"#63869d\"><\/polygon><polygon points=\"555.2,325.4 557.5,326.5 544.0,333.2 541.8,332.1\" fill=\"#9ab5c4\"><\/polygon><path d=\"M528.0 339.1 L528.0 325.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M533.6 329.3 L522.4 334.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"536.2,337.1 522.7,343.9 522.7,345.2 536.2,338.4\" fill=\"#426881\"><\/polygon><polygon points=\"520.5,342.7 522.7,343.9 522.7,345.2 520.5,344.0\" fill=\"#63869d\"><\/polygon><polygon points=\"533.9,336.0 536.2,337.1 522.7,343.9 520.5,342.7\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"463.8,298.6 461.6,299.7 461.6,301.0 463.8,299.9\" fill=\"#58798f\"><\/polygon><polygon points=\"448.1,293.0 461.6,299.7 461.6,301.0 448.1,294.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"450.4,291.9 463.8,298.6 461.6,299.7 448.1,293.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M450.6 285.2 L461.8 290.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"451.6,280.8 453.9,281.9 459.5,294.7 457.2,293.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"485.1,309.2 482.9,310.3 482.9,311.6 485.1,310.5\" fill=\"#58798f\"><\/polygon><polygon points=\"469.4,303.6 482.9,310.3 482.9,311.6 469.4,304.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"471.7,302.5 485.1,309.2 482.9,310.3 469.4,303.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M471.9 295.8 L483.1 301.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"472.9,291.4 475.1,292.6 480.7,305.4 478.5,304.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"506.4,319.9 504.1,321.0 504.1,322.3 506.4,321.2\" fill=\"#58798f\"><\/polygon><polygon points=\"490.7,314.3 504.1,321.0 504.1,322.3 490.7,315.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"492.9,313.1 506.4,319.9 504.1,321.0 490.7,314.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M493.2 306.5 L504.4 312.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"494.2,302.1 496.4,303.2 502.0,316.0 499.8,314.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M570.6 293.8 L570.6 279.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M576.2 284.0 L565.0 289.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"578.7,291.9 565.3,298.6 565.3,299.9 578.7,293.2\" fill=\"#426881\"><\/polygon><polygon points=\"563.1,297.5 565.3,298.6 565.3,299.9 563.1,298.8\" fill=\"#63869d\"><\/polygon><polygon points=\"576.5,290.7 578.7,291.9 565.3,298.6 563.1,297.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M549.3 304.4 L549.3 290.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M554.9 294.6 L543.7 300.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"557.5,302.5 544.0,309.2 544.0,310.5 557.5,303.8\" fill=\"#426881\"><\/polygon><polygon points=\"541.8,308.1 544.0,309.2 544.0,310.5 541.8,309.4\" fill=\"#63869d\"><\/polygon><polygon points=\"555.2,301.4 557.5,302.5 544.0,309.2 541.8,308.1\" fill=\"#9ab5c4\"><\/polygon><path d=\"M528.0 315.1 L528.0 301.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M533.6 305.3 L522.4 310.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"536.2,313.1 522.7,319.9 522.7,321.2 536.2,314.4\" fill=\"#426881\"><\/polygon><polygon points=\"520.5,318.7 522.7,319.9 522.7,321.2 520.5,320.0\" fill=\"#63869d\"><\/polygon><polygon points=\"533.9,312.0 536.2,313.1 522.7,319.9 520.5,318.7\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"463.8,274.6 461.6,275.7 461.6,277.0 463.8,275.9\" fill=\"#58798f\"><\/polygon><polygon points=\"448.1,269.0 461.6,275.7 461.6,277.0 448.1,270.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"450.4,267.9 463.8,274.6 461.6,275.7 448.1,269.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M450.6 261.2 L461.8 266.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"451.6,256.8 453.9,257.9 459.5,270.7 457.2,269.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"485.1,285.2 482.9,286.3 482.9,287.6 485.1,286.5\" fill=\"#58798f\"><\/polygon><polygon points=\"469.4,279.6 482.9,286.3 482.9,287.6 469.4,280.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"471.7,278.5 485.1,285.2 482.9,286.3 469.4,279.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M471.9 271.8 L483.1 277.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"472.9,267.4 475.1,268.6 480.7,281.4 478.5,280.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"506.4,295.9 504.1,297.0 504.1,298.3 506.4,297.2\" fill=\"#58798f\"><\/polygon><polygon points=\"490.7,290.3 504.1,297.0 504.1,298.3 490.7,291.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"492.9,289.1 506.4,295.9 504.1,297.0 490.7,290.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M493.2 282.5 L504.4 288.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"494.2,278.1 496.4,279.2 502.0,292.0 499.8,290.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M570.6 269.8 L570.6 255.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M576.2 260.0 L565.0 265.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"578.7,267.9 565.3,274.6 565.3,275.9 578.7,269.2\" fill=\"#426881\"><\/polygon><polygon points=\"563.1,273.5 565.3,274.6 565.3,275.9 563.1,274.8\" fill=\"#63869d\"><\/polygon><polygon points=\"576.5,266.7 578.7,267.9 565.3,274.6 563.1,273.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M549.3 280.4 L549.3 266.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M554.9 270.6 L543.7 276.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"557.5,278.5 544.0,285.2 544.0,286.5 557.5,279.8\" fill=\"#426881\"><\/polygon><polygon points=\"541.8,284.1 544.0,285.2 544.0,286.5 541.8,285.4\" fill=\"#63869d\"><\/polygon><polygon points=\"555.2,277.4 557.5,278.5 544.0,285.2 541.8,284.1\" fill=\"#9ab5c4\"><\/polygon><path d=\"M528.0 291.1 L528.0 277.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M533.6 281.3 L522.4 286.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"536.2,289.1 522.7,295.9 522.7,297.2 536.2,290.4\" fill=\"#426881\"><\/polygon><polygon points=\"520.5,294.7 522.7,295.9 522.7,297.2 520.5,296.0\" fill=\"#63869d\"><\/polygon><polygon points=\"533.9,288.0 536.2,289.1 522.7,295.9 520.5,294.7\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"463.8,250.6 461.6,251.7 461.6,253.0 463.8,251.9\" fill=\"#58798f\"><\/polygon><polygon points=\"448.1,245.0 461.6,251.7 461.6,253.0 448.1,246.3\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"450.4,243.9 463.8,250.6 461.6,251.7 448.1,245.0\" fill=\"#b8cad3\"><\/polygon><path d=\"M450.6 237.2 L461.8 242.8\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"451.6,232.8 453.9,233.9 459.5,246.7 457.2,245.6\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"485.1,261.2 482.9,262.3 482.9,263.6 485.1,262.5\" fill=\"#58798f\"><\/polygon><polygon points=\"469.4,255.6 482.9,262.3 482.9,263.6 469.4,256.9\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"471.7,254.5 485.1,261.2 482.9,262.3 469.4,255.6\" fill=\"#b8cad3\"><\/polygon><path d=\"M471.9 247.8 L483.1 253.4\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"472.9,243.4 475.1,244.6 480.7,257.4 478.5,256.2\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><polygon points=\"506.4,271.9 504.1,273.0 504.1,274.3 506.4,273.2\" fill=\"#58798f\"><\/polygon><polygon points=\"490.7,266.3 504.1,273.0 504.1,274.3 490.7,267.6\" fill=\"#7d9ba9\"><\/polygon><polygon points=\"492.9,265.1 506.4,271.9 504.1,273.0 490.7,266.3\" fill=\"#b8cad3\"><\/polygon><path d=\"M493.2 258.5 L504.4 264.1\" fill=\"none\" stroke=\"#7b9eaf\" stroke-width=\"0.6\"><\/path><polygon points=\"494.2,254.1 496.4,255.2 502.0,268.0 499.8,266.9\" fill=\"#f0faff\" opacity=\".19\"><\/polygon><path d=\"M570.6 245.8 L570.6 231.8\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M576.2 236.0 L565.0 241.6\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"578.7,243.9 565.3,250.6 565.3,251.9 578.7,245.2\" fill=\"#426881\"><\/polygon><polygon points=\"563.1,249.5 565.3,250.6 565.3,251.9 563.1,250.8\" fill=\"#63869d\"><\/polygon><polygon points=\"576.5,242.7 578.7,243.9 565.3,250.6 563.1,249.5\" fill=\"#9ab5c4\"><\/polygon><path d=\"M549.3 256.4 L549.3 242.4\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M554.9 246.6 L543.7 252.2\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"557.5,254.5 544.0,261.2 544.0,262.5 557.5,255.8\" fill=\"#426881\"><\/polygon><polygon points=\"541.8,260.1 544.0,261.2 544.0,262.5 541.8,261.4\" fill=\"#63869d\"><\/polygon><polygon points=\"555.2,253.4 557.5,254.5 544.0,261.2 541.8,260.1\" fill=\"#9ab5c4\"><\/polygon><path d=\"M528.0 267.1 L528.0 253.1\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.65\"><\/path><path d=\"M533.6 257.3 L522.4 262.9\" fill=\"none\" stroke=\"#62879d\" stroke-width=\"0.55\"><\/path><polygon points=\"536.2,265.1 522.7,271.9 522.7,273.2 536.2,266.4\" fill=\"#426881\"><\/polygon><polygon points=\"520.5,270.7 522.7,271.9 522.7,273.2 520.5,272.0\" fill=\"#63869d\"><\/polygon><polygon points=\"533.9,264.0 536.2,265.1 522.7,271.9 520.5,270.7\" fill=\"#9ab5c4\"><\/polygon><polygon points=\"465.2,387.6 473.0,391.5 473.0,371.5 465.2,367.6\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"466.1,380.2 471.7,383.0 471.7,372.0 466.1,369.2\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M470.3 385.6 L470.3 380.6\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"475.2,392.6 483.1,396.5 483.1,376.5 475.2,372.6\" fill=\"#172e40\" stroke=\"#a6c4d3\" stroke-width=\".6\"><\/polygon><polygon points=\"476.1,385.3 481.7,388.1 481.7,377.1 476.1,374.3\" fill=\"#84acbd\" opacity=\".7\"><\/polygon><path d=\"M480.4 390.6 L480.4 385.6\" fill=\"none\" stroke=\"#d6e6ed\" stroke-width=\"0.95\"><\/path><polygon points=\"481.0,409.1 477.6,410.8 477.6,411.8 481.0,410.1\" fill=\"#466477\"><\/polygon><polygon points=\"450.7,397.3 477.6,410.8 477.6,411.8 450.7,398.3\" fill=\"#688496\"><\/polygon><polygon points=\"454.1,395.6 481.0,409.1 477.6,410.8 450.7,397.3\" fill=\"#a4b5be\"><\/polygon><polygon points=\"477.6,409.8 474.2,411.4 474.2,412.4 477.6,410.8\" fill=\"#466477\"><\/polygon><polygon points=\"447.4,398.0 474.2,411.4 474.2,412.4 447.4,399.0\" fill=\"#688496\"><\/polygon><polygon points=\"450.7,396.3 477.6,409.8 474.2,411.4 447.4,398.0\" fill=\"#a4b5be\"><\/polygon><polygon points=\"474.2,410.4 470.9,412.1 470.9,413.1 474.2,411.4\" fill=\"#466477\"><\/polygon><polygon points=\"444.0,398.7 470.9,412.1 470.9,413.1 444.0,399.7\" fill=\"#688496\"><\/polygon><polygon points=\"447.4,397.0 474.2,410.4 470.9,412.1 444.0,398.7\" fill=\"#a4b5be\"><\/polygon><path d=\"M461.9 367.7 L450.7 366.3\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><path d=\"M488.8 381.2 L477.6 379.8\" fill=\"none\" stroke=\"#bbd3df\" stroke-width=\"0.9\"><\/path><polygon points=\"535.8,200.7 521.3,208.0 521.3,213.0 535.8,205.7\" fill=\"#506f83\"><\/polygon><polygon points=\"502.2,198.4 521.3,208.0 521.3,213.0 502.2,203.4\" fill=\"#7896a6\"><\/polygon><polygon points=\"516.8,191.2 535.8,200.7 521.3,208.0 502.2,198.4\" fill=\"#bacbd2\"><\/polygon><path d=\"M519.0 193.3 L507.8 198.9\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M522.4 195.0 L511.2 200.6\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M525.8 196.7 L514.6 202.3\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M529.1 198.3 L517.9 203.9\" fill=\"none\" stroke=\"#3f6175\" stroke-width=\"0.55\"><\/path><path d=\"M514.6 189.5 L449.6 222.0\" fill=\"none\" stroke=\"#c5d8df\" stroke-width=\"1\"><\/path><path d=\"M577.3 220.8 L512.3 253.3\" fill=\"none\" stroke=\"#c5d8df\" stroke-width=\"1\"><\/path><\/g><g class=\"building-piece\" data-layer=\"5.5\"><g transform=\"translate(475.4 296.2) skewY(26.565)\"><rect x=\"-36\" y=\"-9\" width=\"72\" height=\"18\" rx=\"2\" fill=\"#172b3a\" stroke=\"#aecbda\" stroke-width=\".6\"><\/rect><text text-anchor=\"middle\" y=\"3\" fill=\"#e3f1fa\" font-family=\"sans-serif\" font-size=\"9\" font-weight=\"700\" letter-spacing=\"1\">GBANK<\/text><\/g><\/g><g class=\"building-piece\" data-layer=\"5.9\"><polygon points=\"439.5,373.5 511.2,409.4 511.2,408.2 439.5,372.3\" fill=\"#d8bf8d\"><\/polygon><\/g><g class=\"building-piece\" data-layer=\"6\"><polygon points=\"538.1,201.2 520.2,210.1 520.2,219.1 538.1,210.2\" fill=\"#53718a\"><\/polygon><polygon points=\"497.8,198.9 520.2,210.1 520.2,219.1 497.8,207.9\" fill=\"#7896aa\"><\/polygon><polygon points=\"515.7,190.0 538.1,201.2 520.2,210.1 497.8,198.9\" fill=\"#afc1cc\"><\/polygon><path d=\"M512.3 184.0 L456.3 212.0\" fill=\"none\" stroke=\"#b4cbd8\" stroke-width=\"1.3\"><\/path><path d=\"M567.2 211.4 L511.2 239.4\" fill=\"none\" stroke=\"#b4cbd8\" stroke-width=\"1.3\"><\/path><path d=\"M456.3 212.0 L511.2 239.4\" fill=\"none\" stroke=\"#c3d4df\" stroke-width=\"1.3\"><\/path><\/g><g class=\"building-piece crafted-detail\" data-layer=\"5.7\"><polygon points=\"467.5,346.0 459.7,349.9 459.7,351.4 467.5,347.5\" fill=\"#54768b\"><\/polygon><polygon points=\"440.6,340.4 459.7,349.9 459.7,351.4 440.6,341.9\" fill=\"#809ba8\"><\/polygon><polygon points=\"448.5,336.5 467.5,346.0 459.7,349.9 440.6,340.4\" fill=\"#b5c7ce\"><\/polygon><path d=\"M441.8 340.4 L441.8 333.4\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M450.7 344.8 L450.7 337.8\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M459.7 349.3 L459.7 342.3\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M441.8 333.4 L460.8 342.9\" fill=\"none\" stroke=\"#d9e6e8\" stroke-width=\"0.8\"><\/path><polygon points=\"451.8,337.9 448.5,339.6 448.5,342.6 451.8,340.9\" fill=\"#3c5f4b\"><\/polygon><polygon points=\"444.0,337.4 448.5,339.6 448.5,342.6 444.0,340.4\" fill=\"#5b7f64\"><\/polygon><polygon points=\"447.4,335.7 451.8,337.9 448.5,339.6 444.0,337.4\" fill=\"#87a18a\"><\/polygon><polygon points=\"500.0,362.3 492.2,366.2 492.2,367.7 500.0,363.8\" fill=\"#54768b\"><\/polygon><polygon points=\"473.1,356.7 492.2,366.2 492.2,367.7 473.1,358.2\" fill=\"#809ba8\"><\/polygon><polygon points=\"481.0,352.7 500.0,362.3 492.2,366.2 473.1,356.7\" fill=\"#b5c7ce\"><\/polygon><path d=\"M474.2 356.6 L474.2 349.6\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M483.2 361.1 L483.2 354.1\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M492.2 365.6 L492.2 358.6\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M474.2 349.6 L493.3 359.1\" fill=\"none\" stroke=\"#d9e6e8\" stroke-width=\"0.8\"><\/path><polygon points=\"484.3,354.2 481.0,355.8 481.0,358.8 484.3,357.2\" fill=\"#3c5f4b\"><\/polygon><polygon points=\"476.5,353.6 481.0,355.8 481.0,358.8 476.5,356.6\" fill=\"#5b7f64\"><\/polygon><polygon points=\"479.8,351.9 484.3,354.2 481.0,355.8 476.5,353.6\" fill=\"#87a18a\"><\/polygon><polygon points=\"467.5,298.0 459.7,301.9 459.7,303.4 467.5,299.5\" fill=\"#54768b\"><\/polygon><polygon points=\"440.6,292.4 459.7,301.9 459.7,303.4 440.6,293.9\" fill=\"#809ba8\"><\/polygon><polygon points=\"448.5,288.5 467.5,298.0 459.7,301.9 440.6,292.4\" fill=\"#b5c7ce\"><\/polygon><path d=\"M441.8 292.4 L441.8 285.4\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M450.7 296.8 L450.7 289.8\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M459.7 301.3 L459.7 294.3\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M441.8 285.4 L460.8 294.9\" fill=\"none\" stroke=\"#d9e6e8\" stroke-width=\"0.8\"><\/path><polygon points=\"451.8,289.9 448.5,291.6 448.5,294.6 451.8,292.9\" fill=\"#3c5f4b\"><\/polygon><polygon points=\"444.0,289.4 448.5,291.6 448.5,294.6 444.0,292.4\" fill=\"#5b7f64\"><\/polygon><polygon points=\"447.4,287.7 451.8,289.9 448.5,291.6 444.0,289.4\" fill=\"#87a18a\"><\/polygon><polygon points=\"500.0,314.3 492.2,318.2 492.2,319.7 500.0,315.8\" fill=\"#54768b\"><\/polygon><polygon points=\"473.1,308.7 492.2,318.2 492.2,319.7 473.1,310.2\" fill=\"#809ba8\"><\/polygon><polygon points=\"481.0,304.7 500.0,314.3 492.2,318.2 473.1,308.7\" fill=\"#b5c7ce\"><\/polygon><path d=\"M474.2 308.6 L474.2 301.6\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M483.2 313.1 L483.2 306.1\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M492.2 317.6 L492.2 310.6\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M474.2 301.6 L493.3 311.1\" fill=\"none\" stroke=\"#d9e6e8\" stroke-width=\"0.8\"><\/path><polygon points=\"484.3,306.2 481.0,307.8 481.0,310.8 484.3,309.2\" fill=\"#3c5f4b\"><\/polygon><polygon points=\"476.5,305.6 481.0,307.8 481.0,310.8 476.5,308.6\" fill=\"#5b7f64\"><\/polygon><polygon points=\"479.8,303.9 484.3,306.2 481.0,307.8 476.5,305.6\" fill=\"#87a18a\"><\/polygon><polygon points=\"467.5,274.0 459.7,277.9 459.7,279.4 467.5,275.5\" fill=\"#54768b\"><\/polygon><polygon points=\"440.6,268.4 459.7,277.9 459.7,279.4 440.6,269.9\" fill=\"#809ba8\"><\/polygon><polygon points=\"448.5,264.5 467.5,274.0 459.7,277.9 440.6,268.4\" fill=\"#b5c7ce\"><\/polygon><path d=\"M441.8 268.4 L441.8 261.4\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M450.7 272.8 L450.7 265.8\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M459.7 277.3 L459.7 270.3\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M441.8 261.4 L460.8 270.9\" fill=\"none\" stroke=\"#d9e6e8\" stroke-width=\"0.8\"><\/path><polygon points=\"451.8,265.9 448.5,267.6 448.5,270.6 451.8,268.9\" fill=\"#3c5f4b\"><\/polygon><polygon points=\"444.0,265.4 448.5,267.6 448.5,270.6 444.0,268.4\" fill=\"#5b7f64\"><\/polygon><polygon points=\"447.4,263.7 451.8,265.9 448.5,267.6 444.0,265.4\" fill=\"#87a18a\"><\/polygon><polygon points=\"500.0,290.3 492.2,294.2 492.2,295.7 500.0,291.8\" fill=\"#54768b\"><\/polygon><polygon points=\"473.1,284.7 492.2,294.2 492.2,295.7 473.1,286.2\" fill=\"#809ba8\"><\/polygon><polygon points=\"481.0,280.7 500.0,290.3 492.2,294.2 473.1,284.7\" fill=\"#b5c7ce\"><\/polygon><path d=\"M474.2 284.6 L474.2 277.6\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M483.2 289.1 L483.2 282.1\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M492.2 293.6 L492.2 286.6\" fill=\"none\" stroke=\"#adc8d5\" stroke-width=\"0.7\"><\/path><path d=\"M474.2 277.6 L493.3 287.1\" fill=\"none\" stroke=\"#d9e6e8\" stroke-width=\"0.8\"><\/path><polygon points=\"484.3,282.2 481.0,283.8 481.0,286.8 484.3,285.2\" fill=\"#3c5f4b\"><\/polygon><polygon points=\"476.5,281.6 481.0,283.8 481.0,286.8 476.5,284.6\" fill=\"#5b7f64\"><\/polygon><polygon points=\"479.8,279.9 484.3,282.2 481.0,283.8 476.5,281.6\" fill=\"#87a18a\"><\/polygon><polygon points=\"571.7,373.2 563.8,377.2 563.8,250.2 571.7,246.2\" fill=\"#8eb4c1\" opacity=\".16\"><\/polygon><polygon points=\"548.2,385.0 540.3,388.9 540.3,261.9 548.2,258.0\" fill=\"#8eb4c1\" opacity=\".16\"><\/polygon><polygon points=\"526.9,395.6 519.0,399.6 519.0,272.6 526.9,268.6\" fill=\"#8eb4c1\" opacity=\".16\"><\/polygon><\/g><\/g><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"266\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"1\"><g data-ambient=\"person\" data-index=\"5\"><polygon points=\"454.1,421.2 470.9,429.6 463.0,438.0 441.8,427.3\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"458.6,415.6 453.0,418.4 453.0,427.4 458.6,424.6\" fill=\"#2a4057\"><\/polygon><polygon points=\"449.6,416.8 453.0,418.4 453.0,427.4 449.6,425.8\" fill=\"#3e5269\"><\/polygon><polygon points=\"455.2,414.0 458.6,415.6 453.0,418.4 449.6,416.8\" fill=\"#536b82\"><\/polygon><polygon points=\"457.4,424.2 451.8,427.0 451.8,429.0 457.4,426.2\" fill=\"#1d2c40\"><\/polygon><polygon points=\"448.5,425.3 451.8,427.0 451.8,429.0 448.5,427.3\" fill=\"#2a394e\"><\/polygon><polygon points=\"454.1,422.5 457.4,424.2 451.8,427.0 448.5,425.3\" fill=\"#435165\"><\/polygon><polygon points=\"464.2,418.4 458.6,421.2 458.6,430.2 464.2,427.4\" fill=\"#2a4057\"><\/polygon><polygon points=\"455.2,419.6 458.6,421.2 458.6,430.2 455.2,428.6\" fill=\"#3e5269\"><\/polygon><polygon points=\"460.8,416.8 464.2,418.4 458.6,421.2 455.2,419.6\" fill=\"#536b82\"><\/polygon><polygon points=\"463.0,427.0 457.4,429.8 457.4,431.8 463.0,429.0\" fill=\"#1d2c40\"><\/polygon><polygon points=\"454.1,428.1 457.4,429.8 457.4,431.8 454.1,430.1\" fill=\"#2a394e\"><\/polygon><polygon points=\"459.7,425.3 463.0,427.0 457.4,429.8 454.1,428.1\" fill=\"#435165\"><\/polygon><polygon points=\"465.8,408.7 459.1,412.1 459.1,422.1 465.8,418.7\" fill=\"#486a53\"><\/polygon><polygon points=\"447.9,406.5 459.1,412.1 459.1,422.1 447.9,416.5\" fill=\"#6b9175\"><\/polygon><polygon points=\"454.6,403.1 465.8,408.7 459.1,412.1 447.9,406.5\" fill=\"#a6bfa8\"><\/polygon><polygon points=\"454.1,405.4 448.5,408.2 448.5,415.2 454.1,412.4\" fill=\"#486a53\"><\/polygon><polygon points=\"445.1,406.5 448.5,408.2 448.5,415.2 445.1,413.5\" fill=\"#6b9175\"><\/polygon><polygon points=\"450.7,403.7 454.1,405.4 448.5,408.2 445.1,406.5\" fill=\"#a6bfa8\"><\/polygon><polygon points=\"454.0,412.5 449.5,414.7 449.5,417.7 454.0,415.5\" fill=\"#967664\"><\/polygon><polygon points=\"446.1,413.0 449.5,414.7 449.5,417.7 446.1,416.0\" fill=\"#bb947e\"><\/polygon><polygon points=\"450.6,410.8 454.0,412.5 449.5,414.7 446.1,413.0\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"468.6,412.7 463.0,415.5 463.0,422.5 468.6,419.7\" fill=\"#486a53\"><\/polygon><polygon points=\"459.7,413.8 463.0,415.5 463.0,422.5 459.7,420.8\" fill=\"#6b9175\"><\/polygon><polygon points=\"465.3,411.0 468.6,412.7 463.0,415.5 459.7,413.8\" fill=\"#a6bfa8\"><\/polygon><polygon points=\"468.5,419.7 464.0,422.0 464.0,425.0 468.5,422.7\" fill=\"#967664\"><\/polygon><polygon points=\"460.7,420.3 464.0,422.0 464.0,425.0 460.7,423.3\" fill=\"#bb947e\"><\/polygon><polygon points=\"465.2,418.1 468.5,419.7 464.0,422.0 460.7,420.3\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"464.4,400.8 456.5,404.7 456.5,411.7 464.4,407.8\" fill=\"#a57d66\"><\/polygon><polygon points=\"448.7,400.8 456.5,404.7 456.5,411.7 448.7,407.8\" fill=\"#cba68b\"><\/polygon><polygon points=\"456.5,396.8 464.4,400.8 456.5,404.7 448.7,400.8\" fill=\"#dfbea2\"><\/polygon><polygon points=\"464.8,400.0 456.5,404.1 456.5,405.9 464.8,401.8\" fill=\"#302e2a\"><\/polygon><polygon points=\"448.3,400.0 456.5,404.1 456.5,405.9 448.3,401.8\" fill=\"#42392f\"><\/polygon><polygon points=\"456.5,395.8 464.8,400.0 456.5,404.1 448.3,400.0\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object resident\" data-rise=\"\" data-depth=\"274\"><g class=\"citizen\" data-life=\"walk\" data-walk-direction=\"-1\"><g data-ambient=\"person\" data-index=\"6\"><polygon points=\"595.2,425.6 612.0,434.0 604.2,442.4 582.9,431.8\" fill=\"#0b1725\" opacity=\".28\"><\/polygon><polygon points=\"599.7,420.1 594.1,422.9 594.1,431.9 599.7,429.1\" fill=\"#2a4057\"><\/polygon><polygon points=\"590.7,421.2 594.1,422.9 594.1,431.9 590.7,430.2\" fill=\"#3e5269\"><\/polygon><polygon points=\"596.3,418.4 599.7,420.1 594.1,422.9 590.7,421.2\" fill=\"#536b82\"><\/polygon><polygon points=\"598.6,428.7 593.0,431.5 593.0,433.5 598.6,430.7\" fill=\"#1d2c40\"><\/polygon><polygon points=\"589.6,429.8 593.0,431.5 593.0,433.5 589.6,431.8\" fill=\"#2a394e\"><\/polygon><polygon points=\"595.2,427.0 598.6,428.7 593.0,431.5 589.6,429.8\" fill=\"#435165\"><\/polygon><polygon points=\"605.3,422.9 599.7,425.7 599.7,434.7 605.3,431.9\" fill=\"#2a4057\"><\/polygon><polygon points=\"596.3,424.0 599.7,425.7 599.7,434.7 596.3,433.0\" fill=\"#3e5269\"><\/polygon><polygon points=\"601.9,421.2 605.3,422.9 599.7,425.7 596.3,424.0\" fill=\"#536b82\"><\/polygon><polygon points=\"604.2,431.5 598.6,434.3 598.6,436.3 604.2,433.5\" fill=\"#1d2c40\"><\/polygon><polygon points=\"595.2,432.6 598.6,434.3 598.6,436.3 595.2,434.6\" fill=\"#2a394e\"><\/polygon><polygon points=\"600.8,429.8 604.2,431.5 598.6,434.3 595.2,432.6\" fill=\"#435165\"><\/polygon><polygon points=\"607.0,413.2 600.2,416.6 600.2,426.6 607.0,423.2\" fill=\"#6b555a\"><\/polygon><polygon points=\"589.0,411.0 600.2,416.6 600.2,426.6 589.0,421.0\" fill=\"#957572\"><\/polygon><polygon points=\"595.8,407.6 607.0,413.2 600.2,416.6 589.0,411.0\" fill=\"#c4a5a0\"><\/polygon><polygon points=\"595.2,409.9 589.6,412.7 589.6,419.7 595.2,416.9\" fill=\"#6b555a\"><\/polygon><polygon points=\"586.2,411.0 589.6,412.7 589.6,419.7 586.2,418.0\" fill=\"#957572\"><\/polygon><polygon points=\"591.8,408.2 595.2,409.9 589.6,412.7 586.2,411.0\" fill=\"#c4a5a0\"><\/polygon><polygon points=\"595.1,416.9 590.6,419.2 590.6,422.2 595.1,419.9\" fill=\"#967664\"><\/polygon><polygon points=\"587.2,417.5 590.6,419.2 590.6,422.2 587.2,420.5\" fill=\"#bb947e\"><\/polygon><polygon points=\"591.7,415.3 595.1,416.9 590.6,419.2 587.2,417.5\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"609.8,417.2 604.2,420.0 604.2,427.0 609.8,424.2\" fill=\"#6b555a\"><\/polygon><polygon points=\"600.8,418.3 604.2,420.0 604.2,427.0 600.8,425.3\" fill=\"#957572\"><\/polygon><polygon points=\"606.4,415.5 609.8,417.2 604.2,420.0 600.8,418.3\" fill=\"#c4a5a0\"><\/polygon><polygon points=\"609.6,424.2 605.2,426.5 605.2,429.5 609.6,427.2\" fill=\"#967664\"><\/polygon><polygon points=\"601.8,424.8 605.2,426.5 605.2,429.5 601.8,427.8\" fill=\"#bb947e\"><\/polygon><polygon points=\"606.3,422.5 609.6,424.2 605.2,426.5 601.8,424.8\" fill=\"#e0bfa5\"><\/polygon><polygon points=\"605.5,405.2 597.7,409.2 597.7,416.2 605.5,412.2\" fill=\"#a57d66\"><\/polygon><polygon points=\"589.8,405.2 597.7,409.2 597.7,416.2 589.8,412.2\" fill=\"#cba68b\"><\/polygon><polygon points=\"597.7,401.3 605.5,405.2 597.7,409.2 589.8,405.2\" fill=\"#dfbea2\"><\/polygon><polygon points=\"606.0,404.4 597.7,408.6 597.7,410.4 606.0,406.2\" fill=\"#302e2a\"><\/polygon><polygon points=\"589.4,404.4 597.7,408.6 597.7,410.4 589.4,406.2\" fill=\"#42392f\"><\/polygon><polygon points=\"597.7,400.3 606.0,404.4 597.7,408.6 589.4,404.4\" fill=\"#594b43\"><\/polygon><\/g><\/g><\/g><g class=\"city-object street-furniture\" data-rise=\"\" data-depth=\"275\"><polygon points=\"541.4,434.3 534.7,437.7 534.7,439.7 541.4,436.3\" fill=\"#65513f\"><\/polygon><polygon points=\"510.1,425.4 534.7,437.7 534.7,439.7 510.1,427.4\" fill=\"#836e52\"><\/polygon><polygon points=\"516.8,422.0 541.4,434.3 534.7,437.7 510.1,425.4\" fill=\"#b49a76\"><\/polygon><polygon points=\"542.6,426.8 540.3,427.9 540.3,434.9 542.6,433.8\" fill=\"#584b3b\"><\/polygon><polygon points=\"515.7,415.6 540.3,427.9 540.3,434.9 515.7,422.6\" fill=\"#81694e\"><\/polygon><polygon points=\"517.9,414.4 542.6,426.8 540.3,427.9 515.7,415.6\" fill=\"#ac9374\"><\/polygon><polygon points=\"522.4,426.8 516.8,429.6 516.8,434.6 522.4,431.8\" fill=\"#354858\"><\/polygon><polygon points=\"514.6,428.5 516.8,429.6 516.8,434.6 514.6,433.5\" fill=\"#4d6474\"><\/polygon><polygon points=\"520.2,425.7 522.4,426.8 516.8,429.6 514.6,428.5\" fill=\"#748793\"><\/polygon><polygon points=\"538.1,434.6 532.5,437.4 532.5,442.4 538.1,439.6\" fill=\"#354858\"><\/polygon><polygon points=\"530.2,436.3 532.5,437.4 532.5,442.4 530.2,441.3\" fill=\"#4d6474\"><\/polygon><polygon points=\"535.8,433.5 538.1,434.6 532.5,437.4 530.2,436.3\" fill=\"#748793\"><\/polygon><\/g><g class=\"city-object foliage\" data-rise=\"\" data-depth=\"321\"><polygon points=\"559.4,454.0 534.7,466.3 534.7,469.3 559.4,457.0\" fill=\"#2e4848\"><\/polygon><polygon points=\"510.1,454.0 534.7,466.3 534.7,469.3 510.1,457.0\" fill=\"#405f58\"><\/polygon><polygon points=\"534.7,441.7 559.4,454.0 534.7,466.3 510.1,454.0\" fill=\"#647c70\"><\/polygon><polygon points=\"538.1,436.4 534.7,438.1 534.7,455.1 538.1,453.4\" fill=\"#544631\"><\/polygon><polygon points=\"531.4,436.4 534.7,438.1 534.7,455.1 531.4,453.4\" fill=\"#756149\"><\/polygon><polygon points=\"534.7,434.8 538.1,436.4 534.7,438.1 531.4,436.4\" fill=\"#9d8768\"><\/polygon><g data-ambient=\"leaves\"><polygon points=\"560.5,422.4 534.7,435.3 534.7,451.3 560.5,438.4\" fill=\"#416a55\"><\/polygon><polygon points=\"509.0,422.4 534.7,435.3 534.7,451.3 509.0,438.4\" fill=\"#63866c\"><\/polygon><polygon points=\"534.7,409.6 560.5,422.4 534.7,435.3 509.0,422.4\" fill=\"#8da98b\"><\/polygon><polygon points=\"553.8,410.4 534.7,420.0 534.7,432.0 553.8,422.4\" fill=\"#416a55\"><\/polygon><polygon points=\"515.7,410.4 534.7,420.0 534.7,432.0 515.7,422.4\" fill=\"#63866c\"><\/polygon><polygon points=\"534.7,400.9 553.8,410.4 534.7,420.0 515.7,410.4\" fill=\"#8da98b\"><\/polygon><polygon points=\"547.0,403.4 534.7,409.6 534.7,416.6 547.0,410.4\" fill=\"#416a55\"><\/polygon><polygon points=\"522.4,403.4 534.7,409.6 534.7,416.6 522.4,410.4\" fill=\"#63866c\"><\/polygon><polygon points=\"534.7,397.3 547.0,403.4 534.7,409.6 522.4,403.4\" fill=\"#8da98b\"><\/polygon><\/g><\/g><g class=\"city-object vehicle transit\"><g data-ambient=\"bus\"><polygon points=\"629.9,317.5 616.5,324.2 616.5,330.2 629.9,323.5\" fill=\"#49667d\"><\/polygon><polygon points=\"589.6,310.8 616.5,324.2 616.5,330.2 589.6,316.8\" fill=\"#738b9d\"><\/polygon><polygon points=\"603.0,304.1 629.9,317.5 616.5,324.2 589.6,310.8\" fill=\"#b1bfc8\"><\/polygon><polygon points=\"622.1,309.7 610.9,315.3 610.9,320.3 622.1,314.7\" fill=\"#355873\"><\/polygon><polygon points=\"597.4,308.6 610.9,315.3 610.9,320.3 597.4,313.6\" fill=\"#486d86\"><\/polygon><polygon points=\"608.6,303.0 622.1,309.7 610.9,315.3 597.4,308.6\" fill=\"#92b2c2\"><\/polygon><polygon points=\"610.9,312.0 608.6,313.1 608.6,317.1 610.9,316.0\" fill=\"#101e2d\"><\/polygon><polygon points=\"604.2,310.9 608.6,313.1 608.6,317.1 604.2,314.9\" fill=\"#1b2a36\"><\/polygon><polygon points=\"606.4,309.8 610.9,312.0 608.6,313.1 604.2,310.9\" fill=\"#253744\"><\/polygon><polygon points=\"598.6,318.2 596.3,319.3 596.3,323.3 598.6,322.2\" fill=\"#101e2d\"><\/polygon><polygon points=\"591.8,317.0 596.3,319.3 596.3,323.3 591.8,321.0\" fill=\"#1b2a36\"><\/polygon><polygon points=\"594.1,315.9 598.6,318.2 596.3,319.3 591.8,317.0\" fill=\"#253744\"><\/polygon><polygon points=\"627.7,320.4 625.4,321.5 625.4,325.5 627.7,324.4\" fill=\"#101e2d\"><\/polygon><polygon points=\"621.0,319.3 625.4,321.5 625.4,325.5 621.0,323.3\" fill=\"#1b2a36\"><\/polygon><polygon points=\"623.2,318.2 627.7,320.4 625.4,321.5 621.0,319.3\" fill=\"#253744\"><\/polygon><polygon points=\"615.4,326.6 613.1,327.7 613.1,331.7 615.4,330.6\" fill=\"#101e2d\"><\/polygon><polygon points=\"608.6,325.4 613.1,327.7 613.1,331.7 608.6,329.4\" fill=\"#1b2a36\"><\/polygon><polygon points=\"610.9,324.3 615.4,326.6 613.1,327.7 608.6,325.4\" fill=\"#253744\"><\/polygon><polygon points=\"621.0,307.2 610.9,312.2 610.9,315.2 621.0,310.2\" fill=\"#31536d\"><\/polygon><polygon points=\"597.4,305.5 610.9,312.2 610.9,315.2 597.4,308.5\" fill=\"#466d83\"><\/polygon><polygon points=\"607.5,300.4 621.0,307.2 610.9,312.2 597.4,305.5\" fill=\"#8baebc\"><\/polygon><ellipse cx=\"624.3\" cy=\"322.2\" rx=\"3\" ry=\"1.8\" fill=\"#e8d9a2\"><\/ellipse><\/g><\/g><\/g><\/g><\/svg><div class=\"bh-city-progress\" aria-hidden=\"true\"><i><\/i><\/div><\/div><div class=\"bh-project-caption\"><span class=\"bh-city-caption\">\u041b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u2014 \u043a\u0432\u0430\u0440\u0442\u0430\u043b\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f.<\/span><span>\u0414\u0435\u0442\u0430\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0436\u0438\u0437\u043d\u044c.<\/span><\/div><\/div>\n  <\/div><\/div>\n <\/section>\n <section class=\"bh-project bh-drop\" id=\"bh-drop\" aria-labelledby=\"bh-drop-title\"><div class=\"bh-wrap bh-project-grid\">\n  <div class=\"bh-project-copy\"><p class=\"bh-project-kicker\"><b>02<\/b> \u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0441\u043e\u0444\u0442<\/p><h2 id=\"bh-drop-title\" data-reveal>BanTV Drop<span class=\"bh-project-subtitle\">\u0424\u0430\u0439\u043b\u044b \u2014 \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b.<\/span><\/h2><p class=\"bh-description\" data-reveal>\u0421 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u0432 \u043e\u0434\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u0411\u0435\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043e\u0431\u043b\u0430\u043a\u043e \u0438 \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430: \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e \u043a\u043e\u0434\u0443 \u0438\u043b\u0438 QR \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.<\/p><div class=\"bh-features\"><span>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c<\/span><span>QR-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/span><span>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 SHA-256<\/span><\/div><div class=\"bh-actions\"><a class=\"bh-btn bh-btn-primary\" href=\"https:\/\/bantv.ru\/?page_id=1633\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e Drop <span aria-hidden=\"true\">\u2197<\/span><\/a><button type=\"button\" class=\"bh-btn bh-transfer-replay\" hidden>\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u21bb<\/button><\/div><\/div>\n  <div class=\"bh-transfer\" aria-label=\"\u0410\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0444\u0430\u0439\u043b\u043e\u0432, \u0431\u0435\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\"><div class=\"bh-desktop\"><div class=\"bh-window-bar\"><i><\/i><i><\/i><i><\/i><span>BanTV Drop<\/span><\/div><div class=\"bh-window-body\"><div class=\"bh-device-name\">\u0412\u0430\u0448 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u2192 \u0432\u0430\u0448 \u0442\u0435\u043b\u0435\u0444\u043e\u043d<\/div><h3 class=\"bh-transfer-status\">\u0412\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e \u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435.<\/h3><div class=\"bh-file\"><span class=\"bh-file-icon\" aria-hidden=\"true\">\u25a7<\/span><span>\u0421\u044a\u0451\u043c\u043a\u0430_\u0444\u0438\u043d\u0430\u043b.mp4<small>\u0412\u0438\u0434\u0435\u043e \/ \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f<\/small><\/span><\/div><div class=\"bh-file\"><span class=\"bh-file-icon\" aria-hidden=\"true\">\u25a4<\/span><span>\u0418\u0434\u0435\u0438_\u043f\u0440\u043e\u0435\u043a\u0442\u0430.pdf<small>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \/ \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f<\/small><\/span><\/div><div class=\"bh-transfer-steps\" aria-hidden=\"true\"><span>\u0421\u0432\u044f\u0437\u044c<\/span><span>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430<\/span><span>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/span><span>\u0413\u043e\u0442\u043e\u0432\u043e<\/span><\/div><div class=\"bh-transfer-bar\" aria-hidden=\"true\"><i><\/i><\/div><\/div><\/div><div class=\"bh-phone\"><span class=\"bh-device-name\">\u0422\u0435\u043b\u0435\u0444\u043e\u043d<\/span><span class=\"bh-phone-check\" aria-hidden=\"true\">\u2713<\/span><strong class=\"bh-phone-status\">\u0424\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b<\/strong><small>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438<br>SHA-256<\/small><\/div><div class=\"bh-flying-file\" aria-hidden=\"true\">\u25a7<\/div><span class=\"bh-demo-caption\">\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f. \u0424\u0430\u0439\u043b\u044b \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f.<\/span><\/div>\n <\/div><\/section>\n <section class=\"bh-project bh-signal\" id=\"bh-signal\" aria-labelledby=\"bh-signal-title\"><div class=\"bh-wrap bh-project-grid\">\n  <div class=\"bh-project-copy\"><p class=\"bh-project-kicker\"><b>03<\/b> Roleplay \/ Flashing Lights<\/p><h2 id=\"bh-signal-title\" data-reveal>SignalRP<span class=\"bh-project-subtitle\">\u041e\u0434\u0438\u043d \u0433\u043e\u0440\u043e\u0434. \u041e\u0431\u0449\u0430\u044f \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c.<\/span><\/h2><p class=\"bh-description\" data-reveal>\u0418\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0432\u044b\u0437\u043e\u0432\u0430. \u041f\u043e\u043b\u0438\u0446\u0438\u044f, \u043c\u0435\u0434\u0438\u043a\u0438, \u043f\u043e\u0436\u0430\u0440\u043d\u044b\u0435 \u0438 \u0434\u043e\u0440\u043e\u0436\u043d\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0432 \u0440\u043e\u043b\u0435\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 Flashing Lights.<\/p><p class=\"bh-description\" style=\"font-size:14px;margin-top:18px\">\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443 \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0435\u0451 \u0440\u043e\u043b\u044c\u044e.<\/p><div class=\"bh-actions\"><a class=\"bh-btn bh-btn-primary\" href=\"https:\/\/bantv.ru\/?page_id=1330\">\u041e\u0442\u043a\u0440\u044b\u0442\u044c SignalRP <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"bh-btn\" href=\"https:\/\/t.me\/+t_BkMnenOQdkY2Ji\">\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u2197<\/a><\/div><\/div>\n  <div class=\"bh-dispatch\" data-reveal><div class=\"bh-dispatch-head\"><span>SignalRP \/ \u041a\u0430\u0440\u0442\u0430 \u0441\u043b\u0443\u0436\u0431<\/span><b>\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u0446\u0435\u043f\u0442<\/b><\/div><div class=\"bh-dispatch-map\" aria-hidden=\"true\"><svg class=\"bh-service-route\" viewBox=\"0 0 400 220\" preserveAspectRatio=\"none\"><path class=\"bh-service-track\" d=\"M40 170H120V65H300V130H360\"\/><path class=\"bh-service-flow\" pathLength=\"100\" d=\"M40 170H120V65H300V130H360\"\/><\/svg><div class=\"bh-map-ring\"><\/div><i class=\"bh-map-marker\"><\/i><i class=\"bh-map-marker\"><\/i><i class=\"bh-map-marker\"><\/i><div class=\"bh-map-core\">\u2726<\/div><\/div><div class=\"bh-service-tabs\" aria-label=\"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443\"><button type=\"button\" data-service=\"police\" aria-pressed=\"true\">\u041f\u043e\u043b\u0438\u0446\u0438\u044f<\/button><button type=\"button\" data-service=\"medical\" aria-pressed=\"false\">\u041c\u0435\u0434\u0438\u043a\u0438<\/button><button type=\"button\" data-service=\"fire\" aria-pressed=\"false\">\u041f\u043e\u0436\u0430\u0440\u043d\u044b\u0435<\/button><button type=\"button\" data-service=\"road\" aria-pressed=\"false\">\u0414\u043e\u0440\u0441\u043b\u0443\u0436\u0431\u0430<\/button><\/div><div class=\"bh-service-detail\" aria-live=\"polite\"><strong>\u041f\u043e\u043b\u0438\u0446\u0438\u044f<\/strong><span>\u041f\u0430\u0442\u0440\u0443\u043b\u0438, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0432\u0435\u0441\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439.<\/span><\/div><\/div>\n <\/div><\/section>\n <section class=\"bh-project bh-academy\" id=\"bh-academy\" aria-labelledby=\"bh-academy-title\"><div class=\"bh-wrap bh-project-grid\">\n  <div class=\"bh-project-copy\"><p class=\"bh-project-kicker\"><b>04<\/b> \u0423\u0447\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c<\/p><h2 id=\"bh-academy-title\" data-reveal>BanTV<br>Academy<span class=\"bh-project-subtitle\">\u0411\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0434\u0435\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0448\u0430\u0433\u0430.<\/span><\/h2><p class=\"bh-description\" data-reveal>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0441\u043d\u0438\u043c\u0430\u0442\u044c, \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c 3D \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u0420\u0430\u0437\u0432\u0438\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0432\u044b\u043a\u0438 \u0438 \u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0438\u0445 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p><div class=\"bh-actions\"><a class=\"bh-btn bh-btn-primary\" href=\"https:\/\/bantv.ru\/?page_id=900\">\u041f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 Academy <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"bh-btn\" href=\"https:\/\/t.me\/BanTVAcademyBot\">\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0431\u043e\u0442 \u2197<\/a><\/div><\/div>\n  <div class=\"bh-learning\" data-reveal><div class=\"bh-lesson-back\"><\/div><div class=\"bh-lesson-back bh-lesson-back-two\"><\/div><div class=\"bh-lesson-sheet\"><div class=\"bh-lesson-heading\"><b>Academy<\/b><span>\u0418\u0417 \u0418\u0414\u0415\u0418 \u0412 \u041d\u0410\u0412\u042b\u041a<\/span><\/div><svg class=\"bh-cube\" viewBox=\"0 0 360 210\" aria-hidden=\"true\"><defs><linearGradient id=\"bh-cube-fill\" x2=\"1\" y2=\"1\"><stop stop-color=\"#e6daf9\"\/><stop offset=\"1\" stop-color=\"#af8dd8\"\/><\/linearGradient><\/defs><ellipse cx=\"180\" cy=\"180\" rx=\"93\" ry=\"14\" fill=\"#7f59ac\" opacity=\".08\"\/><g class=\"bh-cube-object\" fill=\"none\" stroke=\"#8e6fb0\" stroke-width=\"1.1\"><path d=\"M180 22 263 68 180 115 97 68Z\" fill=\"#ece4f7\"\/><path d=\"M97 68 180 115 180 202 97 155Z\" fill=\"#c7addf\"\/><path d=\"M180 115 263 68 263 155 180 202Z\" fill=\"url(#bh-cube-fill)\"\/><path d=\"M125 84 125 171 M152 100 152 187 M208 100 208 187 M236 84 236 171 M97 97 180 144 263 97 M97 126 180 173 263 126 M125 52 208 99 M152 37 236 83 M125 83 208 37 M152 99 236 52\" opacity=\".6\"\/><\/g><\/svg><h3>\u041e\u0442 \u00ab\u0445\u043e\u0447\u0443\u00bb \u2014 \u043a \u00ab\u0443\u043c\u0435\u044e\u00bb.<\/h3><p>\u0421\u044a\u0451\u043c\u043a\u0430, \u043c\u043e\u043d\u0442\u0430\u0436, Blender, \u0437\u0432\u0443\u043a \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u0432.<\/p><div class=\"bh-lesson-topics\"><a href=\"https:\/\/bantv.ru\/?page_id=900\">3D \u0438 Blender \u2197<\/a><a href=\"https:\/\/bantv.ru\/?page_id=900\">\u0412\u0438\u0434\u0435\u043e \u0438 \u0437\u0432\u0443\u043a \u2197<\/a><a href=\"https:\/\/bantv.ru\/?page_id=900\">\u041a\u043e\u0434 \u2197<\/a><\/div><\/div><\/div>\n <\/div><\/section>\n <section class=\"bh-project bh-spark\" id=\"bh-spark\" aria-labelledby=\"bh-spark-title\"><div class=\"bh-wrap bh-project-grid\">\n  <div class=\"bh-project-copy\"><p class=\"bh-project-kicker\"><b>05<\/b> \u0418\u0441\u0442\u043e\u0440\u0438\u0438 \/ Minecraft-\u0445\u043e\u0440\u0440\u043e\u0440<\/p><h2 id=\"bh-spark-title\" data-reveal>\u0422\u0435\u043d\u0438 \u0418\u0441\u043a\u0440\u044b<span class=\"bh-project-subtitle\">\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0435\u0441\u0442\u044c \u0442\u043e, \u043e \u0447\u0451\u043c \u043c\u043e\u043b\u0447\u0430\u0442.<\/span><\/h2><p class=\"bh-description\" data-reveal>\u0428\u0435\u0441\u0442\u0435\u0440\u043e \u0434\u0440\u0443\u0437\u0435\u0439 \u043f\u0440\u0438\u0435\u0437\u0436\u0430\u044e\u0442 \u0432 \u0437\u0430\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u044b\u0439 \u043b\u0430\u0433\u0435\u0440\u044c \u00ab\u0418\u0441\u043a\u0440\u0430\u00bb. \u041b\u0435\u0442\u043e 2025-\u0433\u043e. \u0417\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u043c\u0438\u0440 Minecraft \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u0440\u0430\u0446\u0438\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0442\u0430\u0439\u043d\u044b \u0432\u0430\u0436\u043d\u0435\u0435 \u043e\u0442\u0432\u0435\u0442\u043e\u0432.<\/p><div class=\"bh-features\"><span>\u041c\u0438\u0441\u0442\u0438\u043a\u0430<\/span><span>\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0438\u0430\u043b<\/span><span>12+<\/span><\/div><div class=\"bh-actions\"><a class=\"bh-btn bh-btn-primary\" href=\"https:\/\/bantv.ru\/?page_id=1123\">\u041e \u0441\u0435\u0440\u0438\u0430\u043b\u0435 \u0438 \u044d\u043f\u0438\u0437\u043e\u0434\u0430\u0445 <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"bh-btn\" href=\"https:\/\/vk.ru\/clip-220276241_456239063?c=1\" data-video=\"spark\">\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440 \u25b6<\/a><\/div><\/div>\n  <div class=\"bh-spark-scene\" data-reveal><svg class=\"bh-forest\" viewBox=\"0 0 600 650\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\"><path d=\"M0 0H35V650H0ZM48 60H62V650H48ZM95 0H120V650H95ZM160 130H173V650H160ZM438 90H453V650H438ZM497 0H521V650H497ZM565 0H600V650H565Z\"\/><path d=\"M110 110 20 310 75 310 5 440H180L120 310H162ZM510 45 410 290 465 290 410 430H600L535 290H570Z\"\/><path d=\"M174 580V490L298 435 420 490V580ZM230 490V550H260V490ZM320 490V550H350V490Z\" fill-rule=\"evenodd\"\/><\/svg><span class=\"bh-spark-age\">12+<\/span><span class=\"bh-film-meta\">BanTV Production \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442<\/span><h3 class=\"bh-spark-title\">\u0422\u0435\u043d\u0438<span>\u0418\u0441\u043a\u0440\u044b<\/span><\/h3><a class=\"bh-play-round\" href=\"https:\/\/vk.ru\/clip-220276241_456239063?c=1\" data-video=\"spark\" aria-label=\"\u0421\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440 \u0441\u0435\u0440\u0438\u0430\u043b\u0430 \u0422\u0435\u043d\u0438 \u0418\u0441\u043a\u0440\u044b\">\u25b6<\/a><div class=\"bh-embers\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><i><\/i><\/div><\/div>\n <\/div><\/section>\n <section id=\"bh-about\" class=\"bh-section bh-about\" aria-labelledby=\"bh-about-title\"><div class=\"bh-wrap bh-about-grid\"><div><p class=\"bh-kicker\" data-reveal>\u041e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u2014 \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439<\/p><h2 id=\"bh-about-title\" data-reveal>\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435<br>\u0432\u043c\u0435\u0441\u0442\u0435.<\/h2><p class=\"bh-section-lead\" data-reveal>BanTV Production \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0451. \u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u0440\u044b, \u0438\u0433\u0440\u043e\u043a\u0438 \u0438 \u043b\u044e\u0434\u0438, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.<\/p><div class=\"bh-actions\"><a class=\"bh-text-link\" href=\"https:\/\/bantv.ru\/?page_id=1087\">\u041a\u0430\u043a \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u0447\u0430\u0442\u044c \u0441 \u043d\u0430\u043c\u0438 <span aria-hidden=\"true\">\u2197<\/span><\/a><\/div><\/div><ol class=\"bh-values\"><li data-reveal><span>01<\/span><div><h3>\u041f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c<\/h3><p>\u0424\u0438\u043b\u044c\u043c\u044b, \u0448\u043e\u0443, \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043c\u0438\u0440\u044b \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0424\u043e\u0440\u043c\u0430\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u043e\u0434 \u0438\u0434\u0435\u044e.<\/p><\/div><\/li><li data-reveal><span>02<\/span><div><h3>\u041d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u0443\u0442\u0438<\/h3><p>\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0432 Academy \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0440\u043e\u043b\u0438.<\/p><\/div><\/li><li data-reveal><span>03<\/span><div><h3>\u041d\u0430\u0439\u0442\u0438 \u0441\u0432\u043e\u0438\u0445<\/h3><p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043b\u044e\u0434\u0435\u0439 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0431\u0449\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433.<\/p><\/div><\/li><\/ol><\/div><\/section>\n <section class=\"bh-join\" id=\"bh-together\" aria-labelledby=\"bh-join-title\"><div class=\"bh-wrap\"><p class=\"bh-kicker\" data-reveal>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u0448\u0435\u0439<\/p><h2 id=\"bh-join-title\" data-reveal>\u0415\u0441\u0442\u044c \u0438\u0434\u0435\u044f?<br><span class=\"bh-accent\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c.<\/span><\/h2><p data-reveal>\u0425\u043e\u0442\u0438\u0442\u0435 \u0441\u043d\u044f\u0442\u044c \u0432\u044b\u043f\u0443\u0441\u043a, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0438\u043b\u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043c\u0430\u043d\u0434\u0435? \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u043c, \u0447\u0442\u043e \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p><div class=\"bh-actions\" data-reveal><a class=\"bh-btn bh-btn-primary\" href=\"https:\/\/t.me\/BanTVpr\">\u041e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u0438\u0434\u0435\u044e <span aria-hidden=\"true\">\u2197<\/span><\/a><a class=\"bh-btn\" href=\"https:\/\/bantv.ru\/?page_id=1087\">\u041f\u0430\u0440\u0442\u043d\u0451\u0440\u0441\u0442\u0432\u043e \u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u2197<\/a><a class=\"bh-btn\" href=\"https:\/\/t.me\/BanTV_production\">\u0421\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 BanTV \u2197<\/a><\/div><\/div><\/section>\n <div class=\"bh-wrap bh-endline\"><span>BanTV Production \/ \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0432\u043e\u0438 \u043c\u0438\u0440\u044b.<\/span><a href=\"https:\/\/bantv.ru\/?page_id=1238\">\u0412\u0441\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u2197<\/a><a href=\"#bh-hero-title\">\u0412 \u043d\u0430\u0447\u0430\u043b\u043e \u2191<\/a><\/div>\n <dialog class=\"bh-dialog\" aria-labelledby=\"bh-dialog-title\"><div class=\"bh-dialog-top\"><h2 class=\"bh-dialog-title\" id=\"bh-dialog-title\">\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0432\u044b\u043f\u0443\u0441\u043a\u0430<\/h2><button class=\"bh-dialog-close\" type=\"button\" aria-label=\"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0432\u0438\u0434\u0435\u043e\">\u00d7<\/button><\/div><div class=\"bh-player\"><\/div><div class=\"bh-dialog-foot\"><span>\u0412\u0438\u0434\u0435\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0441 VK \u0412\u0438\u0434\u0435\u043e. \u0415\u0441\u043b\u0438 \u043f\u043b\u0435\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432\u044b\u043f\u0443\u0441\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.<\/span><a class=\"bh-video-external\" href=\"https:\/\/bantv.ru\/?page_id=119\" target=\"_blank\" rel=\"noopener\">\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 VK \u0412\u0438\u0434\u0435\u043e \u2197<\/a><\/div><\/dialog>\n<\/div>\n\n<script id=\"bantv-home-v3-script\">\n((_guard535,_guard536,_guard1422)=>{\/**\n * @license\n * Copyright 2010-2025 Three.js Authors\n * SPDX-License-Identifier: MIT\n *\/var th=0,oc=1,nh=2;var ac=1,ih=2,An=3,Wn=0,Gt=1,wn=2,Zn=0,wi=1,lc=2,cc=3,uc=4,sh=5,ui=100,rh=101,oh=102,ah=103,lh=104,ch=200,uh=201,hh=202,dh=203,yo=204,vo=205,fh=206,ph=207,mh=208,gh=209,_h=210,xh=211,yh=212,vh=213,Mh=214,Qo=0,jo=1,ea=2,Ci=3,ta=4,na=5,ia=6,sa=7,hc=0,Sh=1,bh=2,$n=0,Th=1,Eh=2,Ah=3,ra=4,wh=5,Ch=6,Rh=7;var dc=300,Ni=301,Fi=302,oa=303,aa=304,xr=306,Mo=1e3,ci=1001,So=1002,an=1003,Ih=1004;var yr=1005;var xn=1006,la=1007;var mi=1008;var Mn=1009,fc=1010,pc=1011,_s=1012,ca=1013,gi=1014,Cn=1015,xs=1016,ua=1017,ha=1018,ys=1020,mc=35902,gc=35899,_c=1021,xc=1022,un=1023,ls=1026,vs=1027,yc=1028,da=1029,vc=1030,fa=1031;var pa=1033,vr=33776,Mr=33777,Sr=33778,br=33779,ma=35840,ga=35841,_a=35842,xa=35843,ya=36196,va=37492,Ma=37496,Sa=37808,ba=37809,Ta=37810,Ea=37811,Aa=37812,wa=37813,Ca=37814,Ra=37815,Ia=37816,Pa=37817,Da=37818,La=37819,Ua=37820,Na=37821,Fa=36492,Oa=36494,Ba=36495,za=36283,Va=36284,ka=36285,Ha=36286;var qs=2300,bo=2301,_o=2302,Ql=2400,jl=2401,ec=2402;var Ph=3200,Dh=3201;var Mc=0,Lh=1,Jn=\"\",Vt=\"srgb\",Ri=\"srgb-linear\",Ys=\"linear\",ut=\"srgb\";var Ai=7680;var tc=519,Uh=512,Nh=513,Fh=514,Sc=515,Oh=516,Bh=517,zh=518,Vh=519,nc=35044;var bc=\"300 es\",_n=2e3,Zs=2001;var Xn=class{addEventListener(e,t){var _guard,_guard2,_guard3;_guard=this._listeners===void 0,_guard?this._listeners={}:_guard;let n=this._listeners;_guard2=n[e]===void 0,_guard2?n[e]=[]:_guard2,_guard3=n[e].indexOf(t)===-1,_guard3?n[e].push(t):_guard3;}hasEventListener(e,t){var _guard4;let n=this._listeners;return n===void 0?!1:(_guard4=n[e]!==void 0,_guard4?n[e].indexOf(t)!==-1:_guard4);}removeEventListener(e,t){let n=this._listeners;if(n===void 0)return;let s=n[e];if(s!==void 0){var _guard5;let r=s.indexOf(t);_guard5=r!==-1,_guard5?s.splice(r,1):_guard5;}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let n=t[e.type];if(n!==void 0){e.target=this;let s=n.slice(0);for(let r=0,o=s.length;r<o;r++)s[r].call(this,e);e.target=null;}}},Ut=[\"00\",\"01\",\"02\",\"03\",\"04\",\"05\",\"06\",\"07\",\"08\",\"09\",\"0a\",\"0b\",\"0c\",\"0d\",\"0e\",\"0f\",\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"1a\",\"1b\",\"1c\",\"1d\",\"1e\",\"1f\",\"20\",\"21\",\"22\",\"23\",\"24\",\"25\",\"26\",\"27\",\"28\",\"29\",\"2a\",\"2b\",\"2c\",\"2d\",\"2e\",\"2f\",\"30\",\"31\",\"32\",\"33\",\"34\",\"35\",\"36\",\"37\",\"38\",\"39\",\"3a\",\"3b\",\"3c\",\"3d\",\"3e\",\"3f\",\"40\",\"41\",\"42\",\"43\",\"44\",\"45\",\"46\",\"47\",\"48\",\"49\",\"4a\",\"4b\",\"4c\",\"4d\",\"4e\",\"4f\",\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"5a\",\"5b\",\"5c\",\"5d\",\"5e\",\"5f\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"6a\",\"6b\",\"6c\",\"6d\",\"6e\",\"6f\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\",\"77\",\"78\",\"79\",\"7a\",\"7b\",\"7c\",\"7d\",\"7e\",\"7f\",\"80\",\"81\",\"82\",\"83\",\"84\",\"85\",\"86\",\"87\",\"88\",\"89\",\"8a\",\"8b\",\"8c\",\"8d\",\"8e\",\"8f\",\"90\",\"91\",\"92\",\"93\",\"94\",\"95\",\"96\",\"97\",\"98\",\"99\",\"9a\",\"9b\",\"9c\",\"9d\",\"9e\",\"9f\",\"a0\",\"a1\",\"a2\",\"a3\",\"a4\",\"a5\",\"a6\",\"a7\",\"a8\",\"a9\",\"aa\",\"ab\",\"ac\",\"ad\",\"ae\",\"af\",\"b0\",\"b1\",\"b2\",\"b3\",\"b4\",\"b5\",\"b6\",\"b7\",\"b8\",\"b9\",\"ba\",\"bb\",\"bc\",\"bd\",\"be\",\"bf\",\"c0\",\"c1\",\"c2\",\"c3\",\"c4\",\"c5\",\"c6\",\"c7\",\"c8\",\"c9\",\"ca\",\"cb\",\"cc\",\"cd\",\"ce\",\"cf\",\"d0\",\"d1\",\"d2\",\"d3\",\"d4\",\"d5\",\"d6\",\"d7\",\"d8\",\"d9\",\"da\",\"db\",\"dc\",\"dd\",\"de\",\"df\",\"e0\",\"e1\",\"e2\",\"e3\",\"e4\",\"e5\",\"e6\",\"e7\",\"e8\",\"e9\",\"ea\",\"eb\",\"ec\",\"ed\",\"ee\",\"ef\",\"f0\",\"f1\",\"f2\",\"f3\",\"f4\",\"f5\",\"f6\",\"f7\",\"f8\",\"f9\",\"fa\",\"fb\",\"fc\",\"fd\",\"fe\",\"ff\"];var xo=Math.PI\/180,To=180\/Math.PI;function Tr(){let i=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0;return(Ut[~(~i|~255)]+Ut[~(~(i>>8)|~255)]+Ut[~(~(i>>16)|~255)]+Ut[~(~(i>>24)|~255)]+\"-\"+Ut[~(~e|~255)]+Ut[~(~(e>>8)|~255)]+\"-\"+Ut[~(~(e>>16)|~15)|64]+Ut[~(~(e>>24)|~255)]+\"-\"+Ut[~(~t|~63)|128]+Ut[~(~(t>>8)|~255)]+\"-\"+Ut[~(~(t>>16)|~255)]+Ut[~(~(t>>24)|~255)]+Ut[~(~n|~255)]+Ut[~(~(n>>8)|~255)]+Ut[~(~(n>>16)|~255)]+Ut[~(~(n>>24)|~255)]).toLowerCase();}function nt(i,e,t){return Math.max(e,Math.min(t,i));}function Lf(i,e){return(i%e+e)%e;}function Tl(i,e,t){return(1-t)*i+t*e;}function Bs(i,e){switch(e.constructor){case Float32Array:return i;case Uint32Array:return i\/4294967295;case Uint16Array:return i\/65535;case Uint8Array:return i\/255;case Int32Array:return Math.max(i\/2147483647,-1);case Int16Array:return Math.max(i\/32767,-1);case Int8Array:return Math.max(i\/127,-1);default:throw new Error(\"Invalid component type.\");}}function qt(i,e){switch(e.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error(\"Invalid component type.\");}}var ze=class i{constructor(e=0,t=0){i.prototype.isVector2=!0,this.x=e,this.y=t;}get width(){return this.x;}set width(e){this.x=e;}get height(){return this.y;}set height(e){this.y=e;}set(e,t){return this.x=e,this.y=t,this;}setScalar(e){return this.x=e,this.y=e,this;}setX(e){return this.x=e,this;}setY(e){return this.y=e,this;}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error(\"index is out of range: \"+e);}return this;}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+e);}}clone(){return new this.constructor(this.x,this.y);}copy(e){return this.x=e.x,this.y=e.y,this;}add(e){return this.x+=e.x,this.y+=e.y,this;}addScalar(e){return this.x+=e,this.y+=e,this;}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this;}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this;}sub(e){return this.x-=e.x,this.y-=e.y,this;}subScalar(e){return this.x-=e,this.y-=e,this;}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this;}multiply(e){return this.x*=e.x,this.y*=e.y,this;}multiplyScalar(e){return this.x*=e,this.y*=e,this;}divide(e){return this.x\/=e.x,this.y\/=e.y,this;}divideScalar(e){return this.multiplyScalar(1\/e);}applyMatrix3(e){let t=this.x,n=this.y,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6],this.y=s[1]*t+s[4]*n+s[7],this;}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this;}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this;}clamp(e,t){return this.x=nt(this.x,e.x,t.x),this.y=nt(this.y,e.y,t.y),this;}clampScalar(e,t){return this.x=nt(this.x,e,t),this.y=nt(this.y,e,t),this;}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(nt(n,e,t));}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this;}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this;}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this;}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this;}negate(){return this.x=-this.x,this.y=-this.y,this;}dot(e){return this.x*e.x+this.y*e.y;}cross(e){return this.x*e.y-this.y*e.x;}lengthSq(){return this.x*this.x+this.y*this.y;}length(){return Math.sqrt(this.x*this.x+this.y*this.y);}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y);}normalize(){return this.divideScalar(this.length()||1);}angle(){return Math.atan2(-this.y,-this.x)+Math.PI;}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI\/2;let n=this.dot(e)\/t;return Math.acos(nt(n,-1,1));}distanceTo(e){return Math.sqrt(this.distanceToSquared(e));}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n;}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y);}setLength(e){return this.normalize().multiplyScalar(e);}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this;}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this;}equals(e){var _guard6;return _guard6=e.x===this.x,_guard6?e.y===this.y:_guard6;}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this;}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e;}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this;}rotateAround(e,t){let n=Math.cos(t),s=Math.sin(t),r=this.x-e.x,o=this.y-e.y;return this.x=r*n-o*s+e.x,this.y=r*s+o*n+e.y,this;}random(){return this.x=Math.random(),this.y=Math.random(),this;}*[Symbol.iterator](){yield this.x,yield this.y;}},qn=class{constructor(e=0,t=0,n=0,s=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=n,this._w=s;}static slerpFlat(e,t,n,s,r,o,a){let c=n[s+0],l=n[s+1],u=n[s+2],h=n[s+3],d=r[o+0],f=r[o+1],g=r[o+2],_=r[o+3];if(a===0){e[t+0]=c,e[t+1]=l,e[t+2]=u,e[t+3]=h;return;}if(a===1){e[t+0]=d,e[t+1]=f,e[t+2]=g,e[t+3]=_;return;}if(h!==_||c!==d||l!==f||u!==g){let m=1-a,p=c*d+l*f+u*g+h*_,E=p>=0?1:-1,T=1-p*p;if(T>Number.EPSILON){let R=Math.sqrt(T),w=Math.atan2(R,p*E);m=Math.sin(m*w)\/R,a=Math.sin(a*w)\/R;}let y=a*E;if(c=c*m+d*y,l=l*m+f*y,u=u*m+g*y,h=h*m+_*y,m===1-a){let R=1\/Math.sqrt(c*c+l*l+u*u+h*h);c*=R,l*=R,u*=R,h*=R;}}e[t]=c,e[t+1]=l,e[t+2]=u,e[t+3]=h;}static multiplyQuaternionsFlat(e,t,n,s,r,o){let a=n[s],c=n[s+1],l=n[s+2],u=n[s+3],h=r[o],d=r[o+1],f=r[o+2],g=r[o+3];return e[t]=a*g+u*h+c*f-l*d,e[t+1]=c*g+u*d+l*h-a*f,e[t+2]=l*g+u*f+a*d-c*h,e[t+3]=u*g-a*h-c*d-l*f,e;}get x(){return this._x;}set x(e){this._x=e,this._onChangeCallback();}get y(){return this._y;}set y(e){this._y=e,this._onChangeCallback();}get z(){return this._z;}set z(e){this._z=e,this._onChangeCallback();}get w(){return this._w;}set w(e){this._w=e,this._onChangeCallback();}set(e,t,n,s){return this._x=e,this._y=t,this._z=n,this._w=s,this._onChangeCallback(),this;}clone(){return new this.constructor(this._x,this._y,this._z,this._w);}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this;}setFromEuler(e,t=!0){var _guard7;let n=e._x,s=e._y,r=e._z,o=e._order,a=Math.cos,c=Math.sin,l=a(n\/2),u=a(s\/2),h=a(r\/2),d=c(n\/2),f=c(s\/2),g=c(r\/2);switch(o){case\"XYZ\":this._x=d*u*h+l*f*g,this._y=l*f*h-d*u*g,this._z=l*u*g+d*f*h,this._w=l*u*h-d*f*g;break;case\"YXZ\":this._x=d*u*h+l*f*g,this._y=l*f*h-d*u*g,this._z=l*u*g-d*f*h,this._w=l*u*h+d*f*g;break;case\"ZXY\":this._x=d*u*h-l*f*g,this._y=l*f*h+d*u*g,this._z=l*u*g+d*f*h,this._w=l*u*h-d*f*g;break;case\"ZYX\":this._x=d*u*h-l*f*g,this._y=l*f*h+d*u*g,this._z=l*u*g-d*f*h,this._w=l*u*h+d*f*g;break;case\"YZX\":this._x=d*u*h+l*f*g,this._y=l*f*h+d*u*g,this._z=l*u*g-d*f*h,this._w=l*u*h-d*f*g;break;case\"XZY\":this._x=d*u*h-l*f*g,this._y=l*f*h-d*u*g,this._z=l*u*g+d*f*h,this._w=l*u*h+d*f*g;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+o);}return _guard7=t===!0,_guard7?this._onChangeCallback():_guard7,this;}setFromAxisAngle(e,t){let n=t\/2,s=Math.sin(n);return this._x=e.x*s,this._y=e.y*s,this._z=e.z*s,this._w=Math.cos(n),this._onChangeCallback(),this;}setFromRotationMatrix(e){var _guard8;let t=e.elements,n=t[0],s=t[4],r=t[8],o=t[1],a=t[5],c=t[9],l=t[2],u=t[6],h=t[10],d=n+a+h;if(d>0){let f=.5\/Math.sqrt(d+1);this._w=.25\/f,this._x=(u-c)*f,this._y=(r-l)*f,this._z=(o-s)*f;}else if(_guard8=n>a,_guard8?n>h:_guard8){let f=2*Math.sqrt(1+n-a-h);this._w=(u-c)\/f,this._x=.25*f,this._y=(s+o)\/f,this._z=(r+l)\/f;}else if(a>h){let f=2*Math.sqrt(1+a-n-h);this._w=(r-l)\/f,this._x=(s+o)\/f,this._y=.25*f,this._z=(c+u)\/f;}else{let f=2*Math.sqrt(1+h-n-a);this._w=(o-s)\/f,this._x=(r+l)\/f,this._y=(c+u)\/f,this._z=.25*f;}return this._onChangeCallback(),this;}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<1e-8?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize();}angleTo(e){return 2*Math.acos(Math.abs(nt(this.dot(e),-1,1)));}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let s=Math.min(1,t\/n);return this.slerp(e,s),this;}identity(){return this.set(0,0,0,1);}invert(){return this.conjugate();}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this;}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w;}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w;}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w);}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1\/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this;}multiply(e){return this.multiplyQuaternions(this,e);}premultiply(e){return this.multiplyQuaternions(e,this);}multiplyQuaternions(e,t){let n=e._x,s=e._y,r=e._z,o=e._w,a=t._x,c=t._y,l=t._z,u=t._w;return this._x=n*u+o*a+s*l-r*c,this._y=s*u+o*c+r*a-n*l,this._z=r*u+o*l+n*c-s*a,this._w=o*u-n*a-s*c-r*l,this._onChangeCallback(),this;}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let n=this._x,s=this._y,r=this._z,o=this._w,a=o*e._w+n*e._x+s*e._y+r*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=s,this._z=r,this;let c=1-a*a;if(c<=Number.EPSILON){let f=1-t;return this._w=f*o+t*this._w,this._x=f*n+t*this._x,this._y=f*s+t*this._y,this._z=f*r+t*this._z,this.normalize(),this;}let l=Math.sqrt(c),u=Math.atan2(l,a),h=Math.sin((1-t)*u)\/l,d=Math.sin(t*u)\/l;return this._w=o*h+this._w*d,this._x=n*h+this._x*d,this._y=s*h+this._y*d,this._z=r*h+this._z*d,this._onChangeCallback(),this;}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n);}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),s=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(s*Math.sin(e),s*Math.cos(e),r*Math.sin(t),r*Math.cos(t));}equals(e){var _guard9,_guard0,_guard1;return _guard1=(_guard0=(_guard9=e._x===this._x,_guard9?e._y===this._y:_guard9),_guard0?e._z===this._z:_guard0),_guard1?e._w===this._w:_guard1;}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this;}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e;}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this;}toJSON(){return this.toArray();}_onChange(e){return this._onChangeCallback=e,this;}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w;}},N=class i{constructor(e=0,t=0,n=0){i.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n;}set(e,t,n){var _guard10;return _guard10=n===void 0,_guard10?n=this.z:_guard10,this.x=e,this.y=t,this.z=n,this;}setScalar(e){return this.x=e,this.y=e,this.z=e,this;}setX(e){return this.x=e,this;}setY(e){return this.y=e,this;}setZ(e){return this.z=e,this;}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error(\"index is out of range: \"+e);}return this;}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+e);}}clone(){return new this.constructor(this.x,this.y,this.z);}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this;}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this;}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this;}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this;}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this;}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this;}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this;}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this;}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this;}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this;}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this;}applyEuler(e){return this.applyQuaternion(Pu.setFromEuler(e));}applyAxisAngle(e,t){return this.applyQuaternion(Pu.setFromAxisAngle(e,t));}applyMatrix3(e){let t=this.x,n=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*s,this.y=r[1]*t+r[4]*n+r[7]*s,this.z=r[2]*t+r[5]*n+r[8]*s,this;}applyNormalMatrix(e){return this.applyMatrix3(e).normalize();}applyMatrix4(e){let t=this.x,n=this.y,s=this.z,r=e.elements,o=1\/(r[3]*t+r[7]*n+r[11]*s+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*s+r[12])*o,this.y=(r[1]*t+r[5]*n+r[9]*s+r[13])*o,this.z=(r[2]*t+r[6]*n+r[10]*s+r[14])*o,this;}applyQuaternion(e){let t=this.x,n=this.y,s=this.z,r=e.x,o=e.y,a=e.z,c=e.w,l=2*(o*s-a*n),u=2*(a*t-r*s),h=2*(r*n-o*t);return this.x=t+c*l+o*h-a*u,this.y=n+c*u+a*l-r*h,this.z=s+c*h+r*u-o*l,this;}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix);}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld);}transformDirection(e){let t=this.x,n=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*s,this.y=r[1]*t+r[5]*n+r[9]*s,this.z=r[2]*t+r[6]*n+r[10]*s,this.normalize();}divide(e){return this.x\/=e.x,this.y\/=e.y,this.z\/=e.z,this;}divideScalar(e){return this.multiplyScalar(1\/e);}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this;}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this;}clamp(e,t){return this.x=nt(this.x,e.x,t.x),this.y=nt(this.y,e.y,t.y),this.z=nt(this.z,e.z,t.z),this;}clampScalar(e,t){return this.x=nt(this.x,e,t),this.y=nt(this.y,e,t),this.z=nt(this.z,e,t),this;}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(nt(n,e,t));}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this;}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this;}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this;}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this;}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this;}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z;}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z;}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z);}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z);}normalize(){return this.divideScalar(this.length()||1);}setLength(e){return this.normalize().multiplyScalar(e);}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this;}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this;}cross(e){return this.crossVectors(this,e);}crossVectors(e,t){let n=e.x,s=e.y,r=e.z,o=t.x,a=t.y,c=t.z;return this.x=s*c-r*a,this.y=r*o-n*c,this.z=n*a-s*o,this;}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)\/t;return this.copy(e).multiplyScalar(n);}projectOnPlane(e){return El.copy(this).projectOnVector(e),this.sub(El);}reflect(e){return this.sub(El.copy(e).multiplyScalar(2*this.dot(e)));}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI\/2;let n=this.dot(e)\/t;return Math.acos(nt(n,-1,1));}distanceTo(e){return Math.sqrt(this.distanceToSquared(e));}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,s=this.z-e.z;return t*t+n*n+s*s;}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z);}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta);}setFromSphericalCoords(e,t,n){let s=Math.sin(t)*e;return this.x=s*Math.sin(n),this.y=Math.cos(t)*e,this.z=s*Math.cos(n),this;}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y);}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this;}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this;}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),s=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=s,this;}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4);}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3);}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this;}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this;}equals(e){var _guard11,_guard12;return _guard12=(_guard11=e.x===this.x,_guard11?e.y===this.y:_guard11),_guard12?e.z===this.z:_guard12;}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this;}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e;}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this;}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this;}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this;}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z;}},El=new N(),Pu=new qn(),Ye=class i{constructor(e,t,n,s,r,o,a,c,l){var _guard13;i.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],_guard13=e!==void 0,_guard13?this.set(e,t,n,s,r,o,a,c,l):_guard13;}set(e,t,n,s,r,o,a,c,l){let u=this.elements;return u[0]=e,u[1]=s,u[2]=a,u[3]=t,u[4]=r,u[5]=c,u[6]=n,u[7]=o,u[8]=l,this;}identity(){return this.set(1,0,0,0,1,0,0,0,1),this;}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this;}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this;}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this;}multiply(e){return this.multiplyMatrices(this,e);}premultiply(e){return this.multiplyMatrices(e,this);}multiplyMatrices(e,t){let n=e.elements,s=t.elements,r=this.elements,o=n[0],a=n[3],c=n[6],l=n[1],u=n[4],h=n[7],d=n[2],f=n[5],g=n[8],_=s[0],m=s[3],p=s[6],E=s[1],T=s[4],y=s[7],R=s[2],w=s[5],P=s[8];return r[0]=o*_+a*E+c*R,r[3]=o*m+a*T+c*w,r[6]=o*p+a*y+c*P,r[1]=l*_+u*E+h*R,r[4]=l*m+u*T+h*w,r[7]=l*p+u*y+h*P,r[2]=d*_+f*E+g*R,r[5]=d*m+f*T+g*w,r[8]=d*p+f*y+g*P,this;}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this;}determinant(){let e=this.elements,t=e[0],n=e[1],s=e[2],r=e[3],o=e[4],a=e[5],c=e[6],l=e[7],u=e[8];return t*o*u-t*a*l-n*r*u+n*a*c+s*r*l-s*o*c;}invert(){let e=this.elements,t=e[0],n=e[1],s=e[2],r=e[3],o=e[4],a=e[5],c=e[6],l=e[7],u=e[8],h=u*o-a*l,d=a*c-u*r,f=l*r-o*c,g=t*h+n*d+s*f;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let _=1\/g;return e[0]=h*_,e[1]=(s*l-u*n)*_,e[2]=(a*n-s*o)*_,e[3]=d*_,e[4]=(u*t-s*c)*_,e[5]=(s*r-a*t)*_,e[6]=f*_,e[7]=(n*c-l*t)*_,e[8]=(o*t-n*r)*_,this;}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this;}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose();}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this;}setUvTransform(e,t,n,s,r,o,a){let c=Math.cos(r),l=Math.sin(r);return this.set(n*c,n*l,-n*(c*o+l*a)+o+e,-s*l,s*c,-s*(-l*o+c*a)+a+t,0,0,1),this;}scale(e,t){return this.premultiply(Al.makeScale(e,t)),this;}rotate(e){return this.premultiply(Al.makeRotation(-e)),this;}translate(e,t){return this.premultiply(Al.makeTranslation(e,t)),this;}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this;}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this;}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this;}equals(e){let t=this.elements,n=e.elements;for(let s=0;s<9;s++)if(t[s]!==n[s])return!1;return!0;}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this;}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e;}clone(){return new this.constructor().fromArray(this.elements);}},Al=new Ye();function Tc(i){for(let e=i.length-1;e>=0;--e)if(i[e]>=65535)return!0;return!1;}function $s(i){return document.createElementNS(\"http:\/\/www.w3.org\/1999\/xhtml\",i);}function kh(){let i=$s(\"canvas\");return i.style.display=\"block\",i;}var Du={};function cs(i){i in Du||(Du[i]=!0,console.warn(i));}function Hh(i,e,t){return new Promise(function(n,s){function r(){switch(i.clientWaitSync(e,i.SYNC_FLUSH_COMMANDS_BIT,0)){case i.WAIT_FAILED:s();break;case i.TIMEOUT_EXPIRED:setTimeout(r,t);break;default:n();}}setTimeout(r,t);});}var Lu=new Ye().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Uu=new Ye().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Uf(){let i={enabled:!0,workingColorSpace:Ri,spaces:{},convert:function(s,r,o){var _guard14,_guard15,_guard16;return this.enabled===!1||r===o||!r||!o||(_guard14=this.spaces[r].transfer===ut,_guard14?(s.r=Gn(s.r),s.g=Gn(s.g),s.b=Gn(s.b)):_guard14,_guard15=this.spaces[r].primaries!==this.spaces[o].primaries,_guard15?(s.applyMatrix3(this.spaces[r].toXYZ),s.applyMatrix3(this.spaces[o].fromXYZ)):_guard15,_guard16=this.spaces[o].transfer===ut,_guard16?(s.r=as(s.r),s.g=as(s.g),s.b=as(s.b)):_guard16),s;},workingToColorSpace:function(s,r){return this.convert(s,this.workingColorSpace,r);},colorSpaceToWorking:function(s,r){return this.convert(s,r,this.workingColorSpace);},getPrimaries:function(s){return this.spaces[s].primaries;},getTransfer:function(s){return s===Jn?Ys:this.spaces[s].transfer;},getToneMappingMode:function(s){return this.spaces[s].outputColorSpaceConfig.toneMappingMode||\"standard\";},getLuminanceCoefficients:function(s,r=this.workingColorSpace){return s.fromArray(this.spaces[r].luminanceCoefficients);},define:function(s){Object.assign(this.spaces,s);},_getMatrix:function(s,r,o){return s.copy(this.spaces[r].toXYZ).multiply(this.spaces[o].fromXYZ);},_getDrawingBufferColorSpace:function(s){return this.spaces[s].outputColorSpaceConfig.drawingBufferColorSpace;},_getUnpackColorSpace:function(s=this.workingColorSpace){return this.spaces[s].workingColorSpaceConfig.unpackColorSpace;},fromWorkingColorSpace:function(s,r){return cs(\"THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().\"),i.workingToColorSpace(s,r);},toWorkingColorSpace:function(s,r){return cs(\"THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().\"),i.colorSpaceToWorking(s,r);}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],n=[.3127,.329];return i.define({[Ri]:{primaries:e,whitePoint:n,transfer:Ys,toXYZ:Lu,fromXYZ:Uu,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:Vt},outputColorSpaceConfig:{drawingBufferColorSpace:Vt}},[Vt]:{primaries:e,whitePoint:n,transfer:ut,toXYZ:Lu,fromXYZ:Uu,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:Vt}}}),i;}var rt=Uf();function Gn(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4);}function as(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055;}var $i,Eo=class{static getDataURL(e,t=\"image\/png\"){if(\/^data:\/i.test(e.src)||typeof HTMLCanvasElement>\"u\")return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{var _guard17;_guard17=$i===void 0,_guard17?$i=$s(\"canvas\"):_guard17,$i.width=e.width,$i.height=e.height;let s=$i.getContext(\"2d\");e instanceof ImageData?s.putImageData(e,0,0):s.drawImage(e,0,0,e.width,e.height),n=$i;}return n.toDataURL(t);}static sRGBToLinear(e){var _guard18,_guard19,_guard20;if((_guard18=typeof HTMLImageElement<\"u\",_guard18?e instanceof HTMLImageElement:_guard18)||(_guard19=typeof HTMLCanvasElement<\"u\",_guard19?e instanceof HTMLCanvasElement:_guard19)||(_guard20=typeof ImageBitmap<\"u\",_guard20?e instanceof ImageBitmap:_guard20)){let t=$s(\"canvas\");t.width=e.width,t.height=e.height;let n=t.getContext(\"2d\");n.drawImage(e,0,0,e.width,e.height);let s=n.getImageData(0,0,e.width,e.height),r=s.data;for(let o=0;o<r.length;o++)r[o]=Gn(r[o]\/255)*255;return n.putImageData(s,0,0),t;}else if(e.data){let t=e.data.slice(0);for(let n=0;n<t.length;n++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[n]=Math.floor(Gn(t[n]\/255)*255):t[n]=Gn(t[n]);return{data:t,width:e.width,height:e.height};}else return console.warn(\"THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.\"),e;}},Nf=0,us=class{constructor(e=null){this.isSource=!0,Object.defineProperty(this,\"id\",{value:Nf++}),this.uuid=Tr(),this.data=e,this.dataReady=!0,this.version=0;}getSize(e){var _guard21;let t=this.data;return(_guard21=typeof HTMLVideoElement<\"u\",_guard21?t instanceof HTMLVideoElement:_guard21)?e.set(t.videoWidth,t.videoHeight,0):t instanceof VideoFrame?e.set(t.displayHeight,t.displayWidth,0):t!==null?e.set(t.width,t.height,t.depth||0):e.set(0,0,0),e;}set needsUpdate(e){var _guard22;_guard22=e===!0,_guard22?this.version++:_guard22;}toJSON(e){var _guard23;let t=e===void 0||typeof e==\"string\";if(_guard23=!t,_guard23?e.images[this.uuid]!==void 0:_guard23)return e.images[this.uuid];let n={uuid:this.uuid,url:\"\"},s=this.data;if(s!==null){let r;if(Array.isArray(s)){r=[];for(let o=0,a=s.length;o<a;o++)s[o].isDataTexture?r.push(wl(s[o].image)):r.push(wl(s[o]));}else r=wl(s);n.url=r;}return t||(e.images[this.uuid]=n),n;}};function wl(i){var _guard24,_guard25,_guard26;return(_guard24=typeof HTMLImageElement<\"u\",_guard24?i instanceof HTMLImageElement:_guard24)||(_guard25=typeof HTMLCanvasElement<\"u\",_guard25?i instanceof HTMLCanvasElement:_guard25)||(_guard26=typeof ImageBitmap<\"u\",_guard26?i instanceof ImageBitmap:_guard26)?Eo.getDataURL(i):i.data?{data:Array.from(i.data),width:i.width,height:i.height,type:i.data.constructor.name}:(console.warn(\"THREE.Texture: Unable to serialize Texture.\"),{});}var Ff=0,Cl=new N(),jt=class i extends Xn{constructor(e=i.DEFAULT_IMAGE,t=i.DEFAULT_MAPPING,n=ci,s=ci,r=xn,o=mi,a=un,c=Mn,l=i.DEFAULT_ANISOTROPY,u=Jn){var _guard27,_guard28;super(),this.isTexture=!0,Object.defineProperty(this,\"id\",{value:Ff++}),this.uuid=Tr(),this.name=\"\",this.source=new us(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=n,this.wrapT=s,this.magFilter=r,this.minFilter=o,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=c,this.offset=new ze(0,0),this.repeat=new ze(1,1),this.center=new ze(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ye(),this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=u,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(_guard28=(_guard27=e,_guard27?e.depth:_guard27),_guard28?e.depth>1:_guard28),this.pmremVersion=0;}get width(){return this.source.getSize(Cl).x;}get height(){return this.source.getSize(Cl).y;}get depth(){return this.source.getSize(Cl).z;}get image(){return this.source.data;}set image(e=null){this.source.data=e;}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y);}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t});}clearUpdateRanges(){this.updateRanges.length=0;}clone(){return new this.constructor().copy(this);}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this;}setValues(e){for(let t in e){var _guard29,_guard30,_guard31,_guard32,_guard33,_guard34,_guard35,_guard36,_guard37;let n=e[t];if(n===void 0){console.warn(`THREE.Texture.setValues(): parameter '${t}' has value of undefined.`);continue;}let s=this[t];if(s===void 0){console.warn(`THREE.Texture.setValues(): property '${t}' does not exist.`);continue;}(_guard31=(_guard30=(_guard29=s,_guard29?n:_guard29),_guard30?s.isVector2:_guard30),_guard31?n.isVector2:_guard31)||(_guard34=(_guard33=(_guard32=s,_guard32?n:_guard32),_guard33?s.isVector3:_guard33),_guard34?n.isVector3:_guard34)||(_guard37=(_guard36=(_guard35=s,_guard35?n:_guard35),_guard36?s.isMatrix3:_guard36),_guard37?n.isMatrix3:_guard37)?s.copy(n):this[t]=n;}}toJSON(e){var _guard38,_guard39;let t=e===void 0||typeof e==\"string\";if(_guard38=!t,_guard38?e.textures[this.uuid]!==void 0:_guard38)return e.textures[this.uuid];let n={metadata:{version:4.7,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return _guard39=Object.keys(this.userData).length>0,_guard39?n.userData=this.userData:_guard39,t||(e.textures[this.uuid]=n),n;}dispose(){this.dispatchEvent({type:\"dispose\"});}transformUv(e){var _guard40;if(this.mapping!==dc)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Mo:e.x=e.x-Math.floor(e.x);break;case ci:e.x=e.x<0?0:1;break;case So:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break;}if(e.y<0||e.y>1)switch(this.wrapT){case Mo:e.y=e.y-Math.floor(e.y);break;case ci:e.y=e.y<0?0:1;break;case So:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break;}return _guard40=this.flipY,_guard40?e.y=1-e.y:_guard40,e;}set needsUpdate(e){var _guard41;_guard41=e===!0,_guard41?(this.version++,this.source.needsUpdate=!0):_guard41;}set needsPMREMUpdate(e){var _guard42;_guard42=e===!0,_guard42?this.pmremVersion++:_guard42;}};jt.DEFAULT_IMAGE=null;jt.DEFAULT_MAPPING=dc;jt.DEFAULT_ANISOTROPY=1;var vt=class i{constructor(e=0,t=0,n=0,s=1){i.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=s;}get width(){return this.z;}set width(e){this.z=e;}get height(){return this.w;}set height(e){this.w=e;}set(e,t,n,s){return this.x=e,this.y=t,this.z=n,this.w=s,this;}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this;}setX(e){return this.x=e,this;}setY(e){return this.y=e,this;}setZ(e){return this.z=e,this;}setW(e){return this.w=e,this;}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error(\"index is out of range: \"+e);}return this;}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+e);}}clone(){return new this.constructor(this.x,this.y,this.z,this.w);}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this;}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this;}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this;}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this;}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this;}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this;}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this;}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this;}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this;}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this;}applyMatrix4(e){let t=this.x,n=this.y,s=this.z,r=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*s+o[12]*r,this.y=o[1]*t+o[5]*n+o[9]*s+o[13]*r,this.z=o[2]*t+o[6]*n+o[10]*s+o[14]*r,this.w=o[3]*t+o[7]*n+o[11]*s+o[15]*r,this;}divide(e){return this.x\/=e.x,this.y\/=e.y,this.z\/=e.z,this.w\/=e.w,this;}divideScalar(e){return this.multiplyScalar(1\/e);}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x\/t,this.y=e.y\/t,this.z=e.z\/t),this;}setAxisAngleFromRotationMatrix(e){var _guard43,_guard44,_guard49;let t,n,s,r,c=e.elements,l=c[0],u=c[4],h=c[8],d=c[1],f=c[5],g=c[9],_=c[2],m=c[6],p=c[10];if(_guard44=(_guard43=Math.abs(u-d)<.01,_guard43?Math.abs(h-_)<.01:_guard43),_guard44?Math.abs(g-m)<.01:_guard44){var _guard45,_guard46,_guard47,_guard48;if(_guard47=(_guard46=(_guard45=Math.abs(u+d)<.1,_guard45?Math.abs(h+_)<.1:_guard45),_guard46?Math.abs(g+m)<.1:_guard46),_guard47?Math.abs(l+f+p-3)<.1:_guard47)return this.set(1,0,0,0),this;t=Math.PI;let T=(l+1)\/2,y=(f+1)\/2,R=(p+1)\/2,w=(u+d)\/4,P=(h+_)\/4,F=(g+m)\/4;return(_guard48=T>y,_guard48?T>R:_guard48)?T<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(T),s=w\/n,r=P\/n):y>R?y<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(y),n=w\/s,r=F\/s):R<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(R),n=P\/r,s=F\/r),this.set(n,s,r,t),this;}let E=Math.sqrt((m-g)*(m-g)+(h-_)*(h-_)+(d-u)*(d-u));return _guard49=Math.abs(E)<.001,_guard49?E=1:_guard49,this.x=(m-g)\/E,this.y=(h-_)\/E,this.z=(d-u)\/E,this.w=Math.acos((l+f+p-1)\/2),this;}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this;}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this;}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this;}clamp(e,t){return this.x=nt(this.x,e.x,t.x),this.y=nt(this.y,e.y,t.y),this.z=nt(this.z,e.z,t.z),this.w=nt(this.w,e.w,t.w),this;}clampScalar(e,t){return this.x=nt(this.x,e,t),this.y=nt(this.y,e,t),this.z=nt(this.z,e,t),this.w=nt(this.w,e,t),this;}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(nt(n,e,t));}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this;}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this;}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this;}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this;}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this;}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w;}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w;}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w);}normalize(){return this.divideScalar(this.length()||1);}setLength(e){return this.normalize().multiplyScalar(e);}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this;}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this;}equals(e){var _guard50,_guard51,_guard52;return _guard52=(_guard51=(_guard50=e.x===this.x,_guard50?e.y===this.y:_guard50),_guard51?e.z===this.z:_guard51),_guard52?e.w===this.w:_guard52;}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this;}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e;}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this;}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this;}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w;}},Ao=class extends Xn{constructor(e=1,t=1,n={}){super(),n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},n),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=n.depth,this.scissor=new vt(0,0,e,t),this.scissorTest=!1,this.viewport=new vt(0,0,e,t);let s={width:e,height:t,depth:n.depth},r=new jt(s);this.textures=[];let o=n.count;for(let a=0;a<o;a++)this.textures[a]=r.clone(),this.textures[a].isRenderTargetTexture=!0,this.textures[a].renderTarget=this;this._setTextureOptions(n),this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.resolveDepthBuffer=n.resolveDepthBuffer,this.resolveStencilBuffer=n.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=n.depthTexture,this.samples=n.samples,this.multiview=n.multiview;}_setTextureOptions(e={}){var _guard53,_guard54,_guard55,_guard56,_guard57,_guard58,_guard59,_guard60,_guard61,_guard62,_guard63,_guard64,_guard65;let t={minFilter:xn,generateMipmaps:!1,flipY:!1,internalFormat:null};_guard53=e.mapping!==void 0,_guard53?t.mapping=e.mapping:_guard53,_guard54=e.wrapS!==void 0,_guard54?t.wrapS=e.wrapS:_guard54,_guard55=e.wrapT!==void 0,_guard55?t.wrapT=e.wrapT:_guard55,_guard56=e.wrapR!==void 0,_guard56?t.wrapR=e.wrapR:_guard56,_guard57=e.magFilter!==void 0,_guard57?t.magFilter=e.magFilter:_guard57,_guard58=e.minFilter!==void 0,_guard58?t.minFilter=e.minFilter:_guard58,_guard59=e.format!==void 0,_guard59?t.format=e.format:_guard59,_guard60=e.type!==void 0,_guard60?t.type=e.type:_guard60,_guard61=e.anisotropy!==void 0,_guard61?t.anisotropy=e.anisotropy:_guard61,_guard62=e.colorSpace!==void 0,_guard62?t.colorSpace=e.colorSpace:_guard62,_guard63=e.flipY!==void 0,_guard63?t.flipY=e.flipY:_guard63,_guard64=e.generateMipmaps!==void 0,_guard64?t.generateMipmaps=e.generateMipmaps:_guard64,_guard65=e.internalFormat!==void 0,_guard65?t.internalFormat=e.internalFormat:_guard65;for(let n=0;n<this.textures.length;n++)this.textures[n].setValues(t);}get texture(){return this.textures[0];}set texture(e){this.textures[0]=e;}set depthTexture(e){var _guard66,_guard67;_guard66=this._depthTexture!==null,_guard66?this._depthTexture.renderTarget=null:_guard66,_guard67=e!==null,_guard67?e.renderTarget=this:_guard67,this._depthTexture=e;}get depthTexture(){return this._depthTexture;}setSize(e,t,n=1){if(this.width!==e||this.height!==t||this.depth!==n){this.width=e,this.height=t,this.depth=n;for(let s=0,r=this.textures.length;s<r;s++)this.textures[s].image.width=e,this.textures[s].image.height=t,this.textures[s].image.depth=n,this.textures[s].isArrayTexture=this.textures[s].image.depth>1;this.dispose();}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t);}clone(){return new this.constructor().copy(this);}copy(e){var _guard68;this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,n=e.textures.length;t<n;t++){this.textures[t]=e.textures[t].clone(),this.textures[t].isRenderTargetTexture=!0,this.textures[t].renderTarget=this;let s=Object.assign({},e.textures[t].image);this.textures[t].source=new us(s);}return this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.resolveDepthBuffer=e.resolveDepthBuffer,this.resolveStencilBuffer=e.resolveStencilBuffer,_guard68=e.depthTexture!==null,_guard68?this.depthTexture=e.depthTexture.clone():_guard68,this.samples=e.samples,this;}dispose(){this.dispatchEvent({type:\"dispose\"});}},En=class extends Ao{constructor(e=1,t=1,n={}){super(e,t,n),this.isWebGLRenderTarget=!0;}},Js=class extends jt{constructor(e=null,t=1,n=1,s=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:n,depth:s},this.magFilter=an,this.minFilter=an,this.wrapR=ci,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set();}addLayerUpdate(e){this.layerUpdates.add(e);}clearLayerUpdates(){this.layerUpdates.clear();}};var wo=class extends jt{constructor(e=null,t=1,n=1,s=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:n,depth:s},this.magFilter=an,this.minFilter=an,this.wrapR=ci,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1;}};var hi=class{constructor(e=new N(1\/0,1\/0,1\/0),t=new N(-1\/0,-1\/0,-1\/0)){this.isBox3=!0,this.min=e,this.max=t;}set(e,t){return this.min.copy(e),this.max.copy(t),this;}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t<n;t+=3)this.expandByPoint(pn.fromArray(e,t));return this;}setFromBufferAttribute(e){this.makeEmpty();for(let t=0,n=e.count;t<n;t++)this.expandByPoint(pn.fromBufferAttribute(e,t));return this;}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this;}setFromCenterAndSize(e,t){let n=pn.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(n),this.max.copy(e).add(n),this;}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t);}clone(){return new this.constructor().copy(this);}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this;}makeEmpty(){return this.min.x=this.min.y=this.min.z=1\/0,this.max.x=this.max.y=this.max.z=-1\/0,this;}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z;}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5);}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min);}expandByPoint(e){return this.min.min(e),this.max.max(e),this;}expandByVector(e){return this.min.sub(e),this.max.add(e),this;}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this;}expandByObject(e,t=!1){e.updateWorldMatrix(!1,!1);let n=e.geometry;if(n!==void 0){var _guard69,_guard70,_guard71,_guard72;let r=n.getAttribute(\"position\");if(_guard70=(_guard69=t===!0,_guard69?r!==void 0:_guard69),_guard70?e.isInstancedMesh!==!0:_guard70)for(let o=0,a=r.count;o<a;o++)e.isMesh===!0?e.getVertexPosition(o,pn):pn.fromBufferAttribute(r,o),pn.applyMatrix4(e.matrixWorld),this.expandByPoint(pn);else e.boundingBox!==void 0?(_guard71=e.boundingBox===null,_guard71?e.computeBoundingBox():_guard71,qr.copy(e.boundingBox)):(_guard72=n.boundingBox===null,_guard72?n.computeBoundingBox():_guard72,qr.copy(n.boundingBox)),qr.applyMatrix4(e.matrixWorld),this.union(qr);}let s=e.children;for(let r=0,o=s.length;r<o;r++)this.expandByObject(s[r],t);return this;}containsPoint(e){var _guard73,_guard74,_guard75,_guard76,_guard77;return _guard77=(_guard76=(_guard75=(_guard74=(_guard73=e.x>=this.min.x,_guard73?e.x<=this.max.x:_guard73),_guard74?e.y>=this.min.y:_guard74),_guard75?e.y<=this.max.y:_guard75),_guard76?e.z>=this.min.z:_guard76),_guard77?e.z<=this.max.z:_guard77;}containsBox(e){var _guard78,_guard79,_guard80,_guard81,_guard82;return _guard82=(_guard81=(_guard80=(_guard79=(_guard78=this.min.x<=e.min.x,_guard78?e.max.x<=this.max.x:_guard78),_guard79?this.min.y<=e.min.y:_guard79),_guard80?e.max.y<=this.max.y:_guard80),_guard81?this.min.z<=e.min.z:_guard81),_guard82?e.max.z<=this.max.z:_guard82;}getParameter(e,t){return t.set((e.x-this.min.x)\/(this.max.x-this.min.x),(e.y-this.min.y)\/(this.max.y-this.min.y),(e.z-this.min.z)\/(this.max.z-this.min.z));}intersectsBox(e){var _guard83,_guard84,_guard85,_guard86,_guard87;return _guard87=(_guard86=(_guard85=(_guard84=(_guard83=e.max.x>=this.min.x,_guard83?e.min.x<=this.max.x:_guard83),_guard84?e.max.y>=this.min.y:_guard84),_guard85?e.min.y<=this.max.y:_guard85),_guard86?e.max.z>=this.min.z:_guard86),_guard87?e.min.z<=this.max.z:_guard87;}intersectsSphere(e){return this.clampPoint(e.center,pn),pn.distanceToSquared(e.center)<=e.radius*e.radius;}intersectsPlane(e){var _guard88;let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),_guard88=t<=-e.constant,_guard88?n>=-e.constant:_guard88;}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(zs),Yr.subVectors(this.max,zs),Ji.subVectors(e.a,zs),Ki.subVectors(e.b,zs),Qi.subVectors(e.c,zs),ii.subVectors(Ki,Ji),si.subVectors(Qi,Ki),Si.subVectors(Ji,Qi);let t=[0,-ii.z,ii.y,0,-si.z,si.y,0,-Si.z,Si.y,ii.z,0,-ii.x,si.z,0,-si.x,Si.z,0,-Si.x,-ii.y,ii.x,0,-si.y,si.x,0,-Si.y,Si.x,0];return!Rl(t,Ji,Ki,Qi,Yr)||(t=[1,0,0,0,1,0,0,0,1],!Rl(t,Ji,Ki,Qi,Yr))?!1:(Zr.crossVectors(ii,si),t=[Zr.x,Zr.y,Zr.z],Rl(t,Ji,Ki,Qi,Yr));}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max);}distanceToPoint(e){return this.clampPoint(e,pn).distanceTo(e);}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(pn).length()*.5),e;}intersect(e){var _guard89;return this.min.max(e.min),this.max.min(e.max),_guard89=this.isEmpty(),_guard89?this.makeEmpty():_guard89,this;}union(e){return this.min.min(e.min),this.max.max(e.max),this;}applyMatrix4(e){return this.isEmpty()?this:(On[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),On[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),On[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),On[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),On[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),On[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),On[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),On[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(On),this);}translate(e){return this.min.add(e),this.max.add(e),this;}equals(e){var _guard90;return _guard90=e.min.equals(this.min),_guard90?e.max.equals(this.max):_guard90;}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()};}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this;}},On=[new N(),new N(),new N(),new N(),new N(),new N(),new N(),new N()],pn=new N(),qr=new hi(),Ji=new N(),Ki=new N(),Qi=new N(),ii=new N(),si=new N(),Si=new N(),zs=new N(),Yr=new N(),Zr=new N(),bi=new N();function Rl(i,e,t,n,s){for(let r=0,o=i.length-3;r<=o;r+=3){bi.fromArray(i,r);let a=s.x*Math.abs(bi.x)+s.y*Math.abs(bi.y)+s.z*Math.abs(bi.z),c=e.dot(bi),l=t.dot(bi),u=n.dot(bi);if(Math.max(-Math.max(c,l,u),Math.min(c,l,u))>a)return!1;}return!0;}var Of=new hi(),Vs=new N(),Il=new N(),Ii=class{constructor(e=new N(),t=-1){this.isSphere=!0,this.center=e,this.radius=t;}set(e,t){return this.center.copy(e),this.radius=t,this;}setFromPoints(e,t){let n=this.center;t!==void 0?n.copy(t):Of.setFromPoints(e).getCenter(n);let s=0;for(let r=0,o=e.length;r<o;r++)s=Math.max(s,n.distanceToSquared(e[r]));return this.radius=Math.sqrt(s),this;}copy(e){return this.center.copy(e.center),this.radius=e.radius,this;}isEmpty(){return this.radius<0;}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this;}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius;}distanceToPoint(e){return e.distanceTo(this.center)-this.radius;}intersectsSphere(e){let t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t;}intersectsBox(e){return e.intersectsSphere(this);}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius;}clampPoint(e,t){var _guard91;let n=this.center.distanceToSquared(e);return t.copy(e),_guard91=n>this.radius*this.radius,_guard91?(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)):_guard91,t;}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e);}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this;}translate(e){return this.center.add(e),this;}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Vs.subVectors(e,this.center);let t=Vs.lengthSq();if(t>this.radius*this.radius){let n=Math.sqrt(t),s=(n-this.radius)*.5;this.center.addScaledVector(Vs,s\/n),this.radius+=s;}return this;}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Il.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Vs.copy(e.center).add(Il)),this.expandByPoint(Vs.copy(e.center).sub(Il))),this);}equals(e){var _guard92;return _guard92=e.center.equals(this.center),_guard92?e.radius===this.radius:_guard92;}clone(){return new this.constructor().copy(this);}toJSON(){return{radius:this.radius,center:this.center.toArray()};}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this;}},Bn=new N(),Pl=new N(),$r=new N(),ri=new N(),Dl=new N(),Jr=new N(),Ll=new N(),Ks=class{constructor(e=new N(),t=new N(0,0,-1)){this.origin=e,this.direction=t;}set(e,t){return this.origin.copy(e),this.direction.copy(t),this;}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this;}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e);}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this;}recast(e){return this.origin.copy(this.at(e,Bn)),this;}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n);}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e));}distanceSqToPoint(e){let t=Bn.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Bn.copy(this.origin).addScaledVector(this.direction,t),Bn.distanceToSquared(e));}distanceSqToSegment(e,t,n,s){var _guard93,_guard94;Pl.copy(e).add(t).multiplyScalar(.5),$r.copy(t).sub(e).normalize(),ri.copy(this.origin).sub(Pl);let r=e.distanceTo(t)*.5,o=-this.direction.dot($r),a=ri.dot(this.direction),c=-ri.dot($r),l=ri.lengthSq(),u=Math.abs(1-o*o),h,d,f,g;if(u>0){if(h=o*c-a,d=o*a-c,g=r*u,h>=0){if(d>=-g){if(d<=g){let _=1\/u;h*=_,d*=_,f=h*(h+o*d+2*a)+d*(o*h+d+2*c)+l;}else d=r,h=Math.max(0,-(o*d+a)),f=-h*h+d*(d+2*c)+l;}else d=-r,h=Math.max(0,-(o*d+a)),f=-h*h+d*(d+2*c)+l;}else d<=-g?(h=Math.max(0,-(-o*r+a)),d=h>0?-r:Math.min(Math.max(-r,-c),r),f=-h*h+d*(d+2*c)+l):d<=g?(h=0,d=Math.min(Math.max(-r,-c),r),f=d*(d+2*c)+l):(h=Math.max(0,-(o*r+a)),d=h>0?r:Math.min(Math.max(-r,-c),r),f=-h*h+d*(d+2*c)+l);}else d=o>0?-r:r,h=Math.max(0,-(o*d+a)),f=-h*h+d*(d+2*c)+l;return _guard93=n,_guard93?n.copy(this.origin).addScaledVector(this.direction,h):_guard93,_guard94=s,_guard94?s.copy(Pl).addScaledVector($r,d):_guard94,f;}intersectSphere(e,t){Bn.subVectors(e.center,this.origin);let n=Bn.dot(this.direction),s=Bn.dot(Bn)-n*n,r=e.radius*e.radius;if(s>r)return null;let o=Math.sqrt(r-s),a=n-o,c=n+o;return c<0?null:a<0?this.at(c,t):this.at(a,t);}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius;}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)\/t;return n>=0?n:null;}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t);}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0;}intersectBox(e,t){var _guard95,_guard96,_guard97,_guard98;let n,s,r,o,a,c,l=1\/this.direction.x,u=1\/this.direction.y,h=1\/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,s=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,s=(e.min.x-d.x)*l),u>=0?(r=(e.min.y-d.y)*u,o=(e.max.y-d.y)*u):(r=(e.max.y-d.y)*u,o=(e.min.y-d.y)*u),n>o||r>s||(_guard95=r>n||isNaN(n),_guard95?n=r:_guard95,_guard96=o<s||isNaN(s),_guard96?s=o:_guard96,h>=0?(a=(e.min.z-d.z)*h,c=(e.max.z-d.z)*h):(a=(e.max.z-d.z)*h,c=(e.min.z-d.z)*h),n>c||a>s)||(_guard97=a>n||n!==n,_guard97?n=a:_guard97,_guard98=c<s||s!==s,_guard98?s=c:_guard98,s<0)?null:this.at(n>=0?n:s,t);}intersectsBox(e){return this.intersectBox(e,Bn)!==null;}intersectTriangle(e,t,n,s,r){Dl.subVectors(t,e),Jr.subVectors(n,e),Ll.crossVectors(Dl,Jr);let o=this.direction.dot(Ll),a;if(o>0){if(s)return null;a=1;}else if(o<0)a=-1,o=-o;else return null;ri.subVectors(this.origin,e);let c=a*this.direction.dot(Jr.crossVectors(ri,Jr));if(c<0)return null;let l=a*this.direction.dot(Dl.cross(ri));if(l<0||c+l>o)return null;let u=-a*ri.dot(Ll);return u<0?null:this.at(u\/o,r);}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this;}equals(e){var _guard99;return _guard99=e.origin.equals(this.origin),_guard99?e.direction.equals(this.direction):_guard99;}clone(){return new this.constructor().copy(this);}},gt=class i{constructor(e,t,n,s,r,o,a,c,l,u,h,d,f,g,_,m){var _guard100;i.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],_guard100=e!==void 0,_guard100?this.set(e,t,n,s,r,o,a,c,l,u,h,d,f,g,_,m):_guard100;}set(e,t,n,s,r,o,a,c,l,u,h,d,f,g,_,m){let p=this.elements;return p[0]=e,p[4]=t,p[8]=n,p[12]=s,p[1]=r,p[5]=o,p[9]=a,p[13]=c,p[2]=l,p[6]=u,p[10]=h,p[14]=d,p[3]=f,p[7]=g,p[11]=_,p[15]=m,this;}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this;}clone(){return new i().fromArray(this.elements);}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this;}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this;}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this;}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this;}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this;}extractRotation(e){let t=this.elements,n=e.elements,s=1\/ji.setFromMatrixColumn(e,0).length(),r=1\/ji.setFromMatrixColumn(e,1).length(),o=1\/ji.setFromMatrixColumn(e,2).length();return t[0]=n[0]*s,t[1]=n[1]*s,t[2]=n[2]*s,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this;}makeRotationFromEuler(e){let t=this.elements,n=e.x,s=e.y,r=e.z,o=Math.cos(n),a=Math.sin(n),c=Math.cos(s),l=Math.sin(s),u=Math.cos(r),h=Math.sin(r);if(e.order===\"XYZ\"){let d=o*u,f=o*h,g=a*u,_=a*h;t[0]=c*u,t[4]=-c*h,t[8]=l,t[1]=f+g*l,t[5]=d-_*l,t[9]=-a*c,t[2]=_-d*l,t[6]=g+f*l,t[10]=o*c;}else if(e.order===\"YXZ\"){let d=c*u,f=c*h,g=l*u,_=l*h;t[0]=d+_*a,t[4]=g*a-f,t[8]=o*l,t[1]=o*h,t[5]=o*u,t[9]=-a,t[2]=f*a-g,t[6]=_+d*a,t[10]=o*c;}else if(e.order===\"ZXY\"){let d=c*u,f=c*h,g=l*u,_=l*h;t[0]=d-_*a,t[4]=-o*h,t[8]=g+f*a,t[1]=f+g*a,t[5]=o*u,t[9]=_-d*a,t[2]=-o*l,t[6]=a,t[10]=o*c;}else if(e.order===\"ZYX\"){let d=o*u,f=o*h,g=a*u,_=a*h;t[0]=c*u,t[4]=g*l-f,t[8]=d*l+_,t[1]=c*h,t[5]=_*l+d,t[9]=f*l-g,t[2]=-l,t[6]=a*c,t[10]=o*c;}else if(e.order===\"YZX\"){let d=o*c,f=o*l,g=a*c,_=a*l;t[0]=c*u,t[4]=_-d*h,t[8]=g*h+f,t[1]=h,t[5]=o*u,t[9]=-a*u,t[2]=-l*u,t[6]=f*h+g,t[10]=d-_*h;}else if(e.order===\"XZY\"){let d=o*c,f=o*l,g=a*c,_=a*l;t[0]=c*u,t[4]=-h,t[8]=l*u,t[1]=d*h+_,t[5]=o*u,t[9]=f*h-g,t[2]=g*h-f,t[6]=a*u,t[10]=_*h+d;}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this;}makeRotationFromQuaternion(e){return this.compose(Bf,e,zf);}lookAt(e,t,n){var _guard101,_guard102;let s=this.elements;return Kt.subVectors(e,t),_guard101=Kt.lengthSq()===0,_guard101?Kt.z=1:_guard101,Kt.normalize(),oi.crossVectors(n,Kt),_guard102=oi.lengthSq()===0,_guard102?(Math.abs(n.z)===1?Kt.x+=1e-4:Kt.z+=1e-4,Kt.normalize(),oi.crossVectors(n,Kt)):_guard102,oi.normalize(),Kr.crossVectors(Kt,oi),s[0]=oi.x,s[4]=Kr.x,s[8]=Kt.x,s[1]=oi.y,s[5]=Kr.y,s[9]=Kt.y,s[2]=oi.z,s[6]=Kr.z,s[10]=Kt.z,this;}multiply(e){return this.multiplyMatrices(this,e);}premultiply(e){return this.multiplyMatrices(e,this);}multiplyMatrices(e,t){let n=e.elements,s=t.elements,r=this.elements,o=n[0],a=n[4],c=n[8],l=n[12],u=n[1],h=n[5],d=n[9],f=n[13],g=n[2],_=n[6],m=n[10],p=n[14],E=n[3],T=n[7],y=n[11],R=n[15],w=s[0],P=s[4],F=s[8],M=s[12],S=s[1],L=s[5],z=s[9],$=s[13],Q=s[2],O=s[6],W=s[10],ae=s[14],H=s[3],q=s[7],ce=s[11],ge=s[15];return r[0]=o*w+a*S+c*Q+l*H,r[4]=o*P+a*L+c*O+l*q,r[8]=o*F+a*z+c*W+l*ce,r[12]=o*M+a*$+c*ae+l*ge,r[1]=u*w+h*S+d*Q+f*H,r[5]=u*P+h*L+d*O+f*q,r[9]=u*F+h*z+d*W+f*ce,r[13]=u*M+h*$+d*ae+f*ge,r[2]=g*w+_*S+m*Q+p*H,r[6]=g*P+_*L+m*O+p*q,r[10]=g*F+_*z+m*W+p*ce,r[14]=g*M+_*$+m*ae+p*ge,r[3]=E*w+T*S+y*Q+R*H,r[7]=E*P+T*L+y*O+R*q,r[11]=E*F+T*z+y*W+R*ce,r[15]=E*M+T*$+y*ae+R*ge,this;}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this;}determinant(){let e=this.elements,t=e[0],n=e[4],s=e[8],r=e[12],o=e[1],a=e[5],c=e[9],l=e[13],u=e[2],h=e[6],d=e[10],f=e[14],g=e[3],_=e[7],m=e[11],p=e[15];return g*(+r*c*h-s*l*h-r*a*d+n*l*d+s*a*f-n*c*f)+_*(+t*c*f-t*l*d+r*o*d-s*o*f+s*l*u-r*c*u)+m*(+t*l*h-t*a*f-r*o*h+n*o*f+r*a*u-n*l*u)+p*(-s*a*u-t*c*h+t*a*d+s*o*h-n*o*d+n*c*u);}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this;}setPosition(e,t,n){let s=this.elements;return e.isVector3?(s[12]=e.x,s[13]=e.y,s[14]=e.z):(s[12]=e,s[13]=t,s[14]=n),this;}invert(){let e=this.elements,t=e[0],n=e[1],s=e[2],r=e[3],o=e[4],a=e[5],c=e[6],l=e[7],u=e[8],h=e[9],d=e[10],f=e[11],g=e[12],_=e[13],m=e[14],p=e[15],E=h*m*l-_*d*l+_*c*f-a*m*f-h*c*p+a*d*p,T=g*d*l-u*m*l-g*c*f+o*m*f+u*c*p-o*d*p,y=u*_*l-g*h*l+g*a*f-o*_*f-u*a*p+o*h*p,R=g*h*c-u*_*c-g*a*d+o*_*d+u*a*m-o*h*m,w=t*E+n*T+s*y+r*R;if(w===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let P=1\/w;return e[0]=E*P,e[1]=(_*d*r-h*m*r-_*s*f+n*m*f+h*s*p-n*d*p)*P,e[2]=(a*m*r-_*c*r+_*s*l-n*m*l-a*s*p+n*c*p)*P,e[3]=(h*c*r-a*d*r-h*s*l+n*d*l+a*s*f-n*c*f)*P,e[4]=T*P,e[5]=(u*m*r-g*d*r+g*s*f-t*m*f-u*s*p+t*d*p)*P,e[6]=(g*c*r-o*m*r-g*s*l+t*m*l+o*s*p-t*c*p)*P,e[7]=(o*d*r-u*c*r+u*s*l-t*d*l-o*s*f+t*c*f)*P,e[8]=y*P,e[9]=(g*h*r-u*_*r-g*n*f+t*_*f+u*n*p-t*h*p)*P,e[10]=(o*_*r-g*a*r+g*n*l-t*_*l-o*n*p+t*a*p)*P,e[11]=(u*a*r-o*h*r-u*n*l+t*h*l+o*n*f-t*a*f)*P,e[12]=R*P,e[13]=(u*_*s-g*h*s+g*n*d-t*_*d-u*n*m+t*h*m)*P,e[14]=(g*a*s-o*_*s-g*n*c+t*_*c+o*n*m-t*a*m)*P,e[15]=(o*h*s-u*a*s+u*n*c-t*h*c-o*n*d+t*a*d)*P,this;}scale(e){let t=this.elements,n=e.x,s=e.y,r=e.z;return t[0]*=n,t[4]*=s,t[8]*=r,t[1]*=n,t[5]*=s,t[9]*=r,t[2]*=n,t[6]*=s,t[10]*=r,t[3]*=n,t[7]*=s,t[11]*=r,this;}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],s=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,s));}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this;}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this;}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this;}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this;}makeRotationAxis(e,t){let n=Math.cos(t),s=Math.sin(t),r=1-n,o=e.x,a=e.y,c=e.z,l=r*o,u=r*a;return this.set(l*o+n,l*a-s*c,l*c+s*a,0,l*a+s*c,u*a+n,u*c-s*o,0,l*c-s*a,u*c+s*o,r*c*c+n,0,0,0,0,1),this;}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this;}makeShear(e,t,n,s,r,o){return this.set(1,n,r,0,e,1,o,0,t,s,1,0,0,0,0,1),this;}compose(e,t,n){let s=this.elements,r=t._x,o=t._y,a=t._z,c=t._w,l=r+r,u=o+o,h=a+a,d=r*l,f=r*u,g=r*h,_=o*u,m=o*h,p=a*h,E=c*l,T=c*u,y=c*h,R=n.x,w=n.y,P=n.z;return s[0]=(1-(_+p))*R,s[1]=(f+y)*R,s[2]=(g-T)*R,s[3]=0,s[4]=(f-y)*w,s[5]=(1-(d+p))*w,s[6]=(m+E)*w,s[7]=0,s[8]=(g+T)*P,s[9]=(m-E)*P,s[10]=(1-(d+_))*P,s[11]=0,s[12]=e.x,s[13]=e.y,s[14]=e.z,s[15]=1,this;}decompose(e,t,n){var _guard103;let s=this.elements,r=ji.set(s[0],s[1],s[2]).length(),o=ji.set(s[4],s[5],s[6]).length(),a=ji.set(s[8],s[9],s[10]).length();_guard103=this.determinant()<0,_guard103?r=-r:_guard103,e.x=s[12],e.y=s[13],e.z=s[14],mn.copy(this);let l=1\/r,u=1\/o,h=1\/a;return mn.elements[0]*=l,mn.elements[1]*=l,mn.elements[2]*=l,mn.elements[4]*=u,mn.elements[5]*=u,mn.elements[6]*=u,mn.elements[8]*=h,mn.elements[9]*=h,mn.elements[10]*=h,t.setFromRotationMatrix(mn),n.x=r,n.y=o,n.z=a,this;}makePerspective(e,t,n,s,r,o,a=_n,c=!1){let l=this.elements,u=2*r\/(t-e),h=2*r\/(n-s),d=(t+e)\/(t-e),f=(n+s)\/(n-s),g,_;if(c)g=r\/(o-r),_=o*r\/(o-r);else if(a===_n)g=-(o+r)\/(o-r),_=-2*o*r\/(o-r);else if(a===Zs)g=-o\/(o-r),_=-o*r\/(o-r);else throw new Error(\"THREE.Matrix4.makePerspective(): Invalid coordinate system: \"+a);return l[0]=u,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=g,l[14]=_,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this;}makeOrthographic(e,t,n,s,r,o,a=_n,c=!1){let l=this.elements,u=2\/(t-e),h=2\/(n-s),d=-(t+e)\/(t-e),f=-(n+s)\/(n-s),g,_;if(c)g=1\/(o-r),_=o\/(o-r);else if(a===_n)g=-2\/(o-r),_=-(o+r)\/(o-r);else if(a===Zs)g=-1\/(o-r),_=-r\/(o-r);else throw new Error(\"THREE.Matrix4.makeOrthographic(): Invalid coordinate system: \"+a);return l[0]=u,l[4]=0,l[8]=0,l[12]=d,l[1]=0,l[5]=h,l[9]=0,l[13]=f,l[2]=0,l[6]=0,l[10]=g,l[14]=_,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this;}equals(e){let t=this.elements,n=e.elements;for(let s=0;s<16;s++)if(t[s]!==n[s])return!1;return!0;}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this;}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e;}},ji=new N(),mn=new gt(),Bf=new N(0,0,0),zf=new N(1,1,1),oi=new N(),Kr=new N(),Kt=new N(),Nu=new gt(),Fu=new qn(),yn=class i{constructor(e=0,t=0,n=0,s=i.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=s;}get x(){return this._x;}set x(e){this._x=e,this._onChangeCallback();}get y(){return this._y;}set y(e){this._y=e,this._onChangeCallback();}get z(){return this._z;}set z(e){this._z=e,this._onChangeCallback();}get order(){return this._order;}set order(e){this._order=e,this._onChangeCallback();}set(e,t,n,s=this._order){return this._x=e,this._y=t,this._z=n,this._order=s,this._onChangeCallback(),this;}clone(){return new this.constructor(this._x,this._y,this._z,this._order);}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this;}setFromRotationMatrix(e,t=this._order,n=!0){var _guard104;let s=e.elements,r=s[0],o=s[4],a=s[8],c=s[1],l=s[5],u=s[9],h=s[2],d=s[6],f=s[10];switch(t){case\"XYZ\":this._y=Math.asin(nt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-u,f),this._z=Math.atan2(-o,r)):(this._x=Math.atan2(d,l),this._z=0);break;case\"YXZ\":this._x=Math.asin(-nt(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(a,f),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case\"ZXY\":this._x=Math.asin(nt(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-h,f),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(c,r));break;case\"ZYX\":this._y=Math.asin(-nt(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(d,f),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-o,l));break;case\"YZX\":this._z=Math.asin(nt(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-u,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,f));break;case\"XZY\":this._z=Math.asin(-nt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-u,f),this._y=0);break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+t);}return this._order=t,_guard104=n===!0,_guard104?this._onChangeCallback():_guard104,this;}setFromQuaternion(e,t,n){return Nu.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Nu,t,n);}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t);}reorder(e){return Fu.setFromEuler(this),this.setFromQuaternion(Fu,e);}equals(e){var _guard105,_guard106,_guard107;return _guard107=(_guard106=(_guard105=e._x===this._x,_guard105?e._y===this._y:_guard105),_guard106?e._z===this._z:_guard106),_guard107?e._order===this._order:_guard107;}fromArray(e){var _guard108;return this._x=e[0],this._y=e[1],this._z=e[2],_guard108=e[3]!==void 0,_guard108?this._order=e[3]:_guard108,this._onChangeCallback(),this;}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e;}_onChange(e){return this._onChangeCallback=e,this;}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order;}};yn.DEFAULT_ORDER=\"XYZ\";var Qs=class{constructor(){this.mask=1;}set(e){this.mask=(1<<e|0)>>>0;}enable(e){this.mask|=1<<e|0;}enableAll(){this.mask=-1;}toggle(e){this.mask^=1<<e|0;}disable(e){this.mask=~(~this.mask|~~(1<<e|0));}disableAll(){this.mask=0;}test(e){return~(~this.mask|~e.mask)!==0;}isEnabled(e){return~(~this.mask|~(1<<e|0))!==0;}},Vf=0,Ou=new N(),es=new qn(),zn=new gt(),Qr=new N(),ks=new N(),kf=new N(),Hf=new qn(),Bu=new N(1,0,0),zu=new N(0,1,0),Vu=new N(0,0,1),ku={type:\"added\"},Gf={type:\"removed\"},ts={type:\"childadded\",child:null},Ul={type:\"childremoved\",child:null},Lt=class i extends Xn{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,\"id\",{value:Vf++}),this.uuid=Tr(),this.name=\"\",this.type=\"Object3D\",this.parent=null,this.children=[],this.up=i.DEFAULT_UP.clone();let e=new N(),t=new yn(),n=new qn(),s=new N(1,1,1);function r(){n.setFromEuler(t,!1);}function o(){t.setFromQuaternion(n,void 0,!1);}t._onChange(r),n._onChange(o),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:s},modelViewMatrix:{value:new gt()},normalMatrix:{value:new Ye()}}),this.matrix=new gt(),this.matrixWorld=new gt(),this.matrixAutoUpdate=i.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=i.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new Qs(),this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={};}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){var _guard109;_guard109=this.matrixAutoUpdate,_guard109?this.updateMatrix():_guard109,this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale);}applyQuaternion(e){return this.quaternion.premultiply(e),this;}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t);}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0);}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e);}setRotationFromQuaternion(e){this.quaternion.copy(e);}rotateOnAxis(e,t){return es.setFromAxisAngle(e,t),this.quaternion.multiply(es),this;}rotateOnWorldAxis(e,t){return es.setFromAxisAngle(e,t),this.quaternion.premultiply(es),this;}rotateX(e){return this.rotateOnAxis(Bu,e);}rotateY(e){return this.rotateOnAxis(zu,e);}rotateZ(e){return this.rotateOnAxis(Vu,e);}translateOnAxis(e,t){return Ou.copy(e).applyQuaternion(this.quaternion),this.position.add(Ou.multiplyScalar(t)),this;}translateX(e){return this.translateOnAxis(Bu,e);}translateY(e){return this.translateOnAxis(zu,e);}translateZ(e){return this.translateOnAxis(Vu,e);}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld);}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(zn.copy(this.matrixWorld).invert());}lookAt(e,t,n){var _guard110;e.isVector3?Qr.copy(e):Qr.set(e,t,n);let s=this.parent;this.updateWorldMatrix(!0,!1),ks.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?zn.lookAt(ks,Qr,this.up):zn.lookAt(Qr,ks,this.up),this.quaternion.setFromRotationMatrix(zn),_guard110=s,_guard110?(zn.extractRotation(s.matrixWorld),es.setFromRotationMatrix(zn),this.quaternion.premultiply(es.invert())):_guard110;}add(e){var _guard111;if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this;}return e===this?(console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",e),this):((_guard111=e,_guard111?e.isObject3D:_guard111)?(e.removeFromParent(),e.parent=this,this.children.push(e),e.dispatchEvent(ku),ts.child=e,this.dispatchEvent(ts),ts.child=null):console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",e),this);}remove(e){var _guard112;if(arguments.length>1){for(let n=0;n<arguments.length;n++)this.remove(arguments[n]);return this;}let t=this.children.indexOf(e);return _guard112=t!==-1,_guard112?(e.parent=null,this.children.splice(t,1),e.dispatchEvent(Gf),Ul.child=e,this.dispatchEvent(Ul),Ul.child=null):_guard112,this;}removeFromParent(){var _guard113;let e=this.parent;return _guard113=e!==null,_guard113?e.remove(this):_guard113,this;}clear(){return this.remove(...this.children);}attach(e){var _guard114;return this.updateWorldMatrix(!0,!1),zn.copy(this.matrixWorld).invert(),_guard114=e.parent!==null,_guard114?(e.parent.updateWorldMatrix(!0,!1),zn.multiply(e.parent.matrixWorld)):_guard114,e.applyMatrix4(zn),e.removeFromParent(),e.parent=this,this.children.push(e),e.updateWorldMatrix(!1,!0),e.dispatchEvent(ku),ts.child=e,this.dispatchEvent(ts),ts.child=null,this;}getObjectById(e){return this.getObjectByProperty(\"id\",e);}getObjectByName(e){return this.getObjectByProperty(\"name\",e);}getObjectByProperty(e,t){if(this[e]===t)return this;for(let n=0,s=this.children.length;n<s;n++){let o=this.children[n].getObjectByProperty(e,t);if(o!==void 0)return o;}}getObjectsByProperty(e,t,n=[]){var _guard115;_guard115=this[e]===t,_guard115?n.push(this):_guard115;let s=this.children;for(let r=0,o=s.length;r<o;r++)s[r].getObjectsByProperty(e,t,n);return n;}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld);}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ks,e,kf),e;}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ks,Hf,e),e;}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize();}raycast(){}traverse(e){e(this);let t=this.children;for(let n=0,s=t.length;n<s;n++)t[n].traverse(e);}traverseVisible(e){if(this.visible===!1)return;e(this);let t=this.children;for(let n=0,s=t.length;n<s;n++)t[n].traverseVisible(e);}traverseAncestors(e){var _guard116;let t=this.parent;_guard116=t!==null,_guard116?(e(t),t.traverseAncestors(e)):_guard116;}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0;}updateMatrixWorld(e){var _guard117,_guard118,_guard119;_guard117=this.matrixAutoUpdate,_guard117?this.updateMatrix():_guard117,_guard119=this.matrixWorldNeedsUpdate||e,_guard119?(_guard118=this.matrixWorldAutoUpdate===!0,_guard118?this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix):_guard118,this.matrixWorldNeedsUpdate=!1,e=!0):_guard119;let t=this.children;for(let n=0,s=t.length;n<s;n++)t[n].updateMatrixWorld(e);}updateWorldMatrix(e,t){var _guard120,_guard121,_guard122,_guard123;let n=this.parent;if(_guard121=(_guard120=e===!0,_guard120?n!==null:_guard120),_guard121?n.updateWorldMatrix(!0,!1):_guard121,_guard122=this.matrixAutoUpdate,_guard122?this.updateMatrix():_guard122,_guard123=this.matrixWorldAutoUpdate===!0,_guard123?this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix):_guard123,t===!0){let s=this.children;for(let r=0,o=s.length;r<o;r++)s[r].updateWorldMatrix(!1,!0);}}toJSON(e){var _guard124,_guard125,_guard126,_guard127,_guard128,_guard129,_guard130,_guard131,_guard132,_guard133,_guard134,_guard135,_guard136,_guard137,_guard138,_guard140,_guard141,_guard142,_guard143,_guard144,_guard146,_guard147;let t=e===void 0||typeof e==\"string\",n={};_guard124=t,_guard124?(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},n.metadata={version:4.7,type:\"Object\",generator:\"Object3D.toJSON\"}):_guard124;let s={};s.uuid=this.uuid,s.type=this.type,_guard125=this.name!==\"\",_guard125?s.name=this.name:_guard125,_guard126=this.castShadow===!0,_guard126?s.castShadow=!0:_guard126,_guard127=this.receiveShadow===!0,_guard127?s.receiveShadow=!0:_guard127,_guard128=this.visible===!1,_guard128?s.visible=!1:_guard128,_guard129=this.frustumCulled===!1,_guard129?s.frustumCulled=!1:_guard129,_guard130=this.renderOrder!==0,_guard130?s.renderOrder=this.renderOrder:_guard130,_guard131=Object.keys(this.userData).length>0,_guard131?s.userData=this.userData:_guard131,s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),_guard132=this.matrixAutoUpdate===!1,_guard132?s.matrixAutoUpdate=!1:_guard132,_guard134=this.isInstancedMesh,_guard134?(s.type=\"InstancedMesh\",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),_guard133=this.instanceColor!==null,_guard133?s.instanceColor=this.instanceColor.toJSON():_guard133):_guard134,_guard138=this.isBatchedMesh,_guard138?(s.type=\"BatchedMesh\",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.geometryInfo=this._geometryInfo.map(a=>({...a,boundingBox:a.boundingBox?a.boundingBox.toJSON():void 0,boundingSphere:a.boundingSphere?a.boundingSphere.toJSON():void 0})),s.instanceInfo=this._instanceInfo.map(a=>({...a})),s.availableInstanceIds=this._availableInstanceIds.slice(),s.availableGeometryIds=this._availableGeometryIds.slice(),s.nextIndexStart=this._nextIndexStart,s.nextVertexStart=this._nextVertexStart,s.geometryCount=this._geometryCount,s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.matricesTexture=this._matricesTexture.toJSON(e),s.indirectTexture=this._indirectTexture.toJSON(e),_guard135=this._colorsTexture!==null,_guard135?s.colorsTexture=this._colorsTexture.toJSON(e):_guard135,_guard136=this.boundingSphere!==null,_guard136?s.boundingSphere=this.boundingSphere.toJSON():_guard136,_guard137=this.boundingBox!==null,_guard137?s.boundingBox=this.boundingBox.toJSON():_guard137):_guard138;function r(a,c){var _guard139;return _guard139=a[c.uuid]===void 0,_guard139?a[c.uuid]=c.toJSON(e):_guard139,c.uuid;}if(this.isScene)_guard141=this.background,_guard141?this.background.isColor?s.background=this.background.toJSON():(_guard140=this.background.isTexture,_guard140?s.background=this.background.toJSON(e).uuid:_guard140):_guard141,_guard144=(_guard143=(_guard142=this.environment,_guard142?this.environment.isTexture:_guard142),_guard143?this.environment.isRenderTargetTexture!==!0:_guard143),_guard144?s.environment=this.environment.toJSON(e).uuid:_guard144;else if(this.isMesh||this.isLine||this.isPoints){var _guard145;s.geometry=r(e.geometries,this.geometry);let a=this.geometry.parameters;if(_guard145=a!==void 0,_guard145?a.shapes!==void 0:_guard145){let c=a.shapes;if(Array.isArray(c))for(let l=0,u=c.length;l<u;l++){let h=c[l];r(e.shapes,h);}else r(e.shapes,c);}}if(_guard147=this.isSkinnedMesh,_guard147?(s.bindMode=this.bindMode,s.bindMatrix=this.bindMatrix.toArray(),_guard146=this.skeleton!==void 0,_guard146?(r(e.skeletons,this.skeleton),s.skeleton=this.skeleton.uuid):_guard146):_guard147,this.material!==void 0)if(Array.isArray(this.material)){let a=[];for(let c=0,l=this.material.length;c<l;c++)a.push(r(e.materials,this.material[c]));s.material=a;}else s.material=r(e.materials,this.material);if(this.children.length>0){s.children=[];for(let a=0;a<this.children.length;a++)s.children.push(this.children[a].toJSON(e).object);}if(this.animations.length>0){s.animations=[];for(let a=0;a<this.animations.length;a++){let c=this.animations[a];s.animations.push(r(e.animations,c));}}if(t){var _guard148,_guard149,_guard150,_guard151,_guard152,_guard153,_guard154,_guard155;let a=o(e.geometries),c=o(e.materials),l=o(e.textures),u=o(e.images),h=o(e.shapes),d=o(e.skeletons),f=o(e.animations),g=o(e.nodes);_guard148=a.length>0,_guard148?n.geometries=a:_guard148,_guard149=c.length>0,_guard149?n.materials=c:_guard149,_guard150=l.length>0,_guard150?n.textures=l:_guard150,_guard151=u.length>0,_guard151?n.images=u:_guard151,_guard152=h.length>0,_guard152?n.shapes=h:_guard152,_guard153=d.length>0,_guard153?n.skeletons=d:_guard153,_guard154=f.length>0,_guard154?n.animations=f:_guard154,_guard155=g.length>0,_guard155?n.nodes=g:_guard155;}return n.object=s,n;function o(a){let c=[];for(let l in a){let u=a[l];delete u.metadata,c.push(u);}return c;}}clone(e){return new this.constructor().copy(this,e);}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n<e.children.length;n++){let s=e.children[n];this.add(s.clone());}return this;}};Lt.DEFAULT_UP=new N(0,1,0);Lt.DEFAULT_MATRIX_AUTO_UPDATE=!0;Lt.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var gn=new N(),Vn=new N(),Nl=new N(),kn=new N(),ns=new N(),is=new N(),Hu=new N(),Fl=new N(),Ol=new N(),Bl=new N(),zl=new vt(),Vl=new vt(),kl=new vt(),Hn=class i{constructor(e=new N(),t=new N(),n=new N()){this.a=e,this.b=t,this.c=n;}static getNormal(e,t,n,s){s.subVectors(n,t),gn.subVectors(e,t),s.cross(gn);let r=s.lengthSq();return r>0?s.multiplyScalar(1\/Math.sqrt(r)):s.set(0,0,0);}static getBarycoord(e,t,n,s,r){gn.subVectors(s,t),Vn.subVectors(n,t),Nl.subVectors(e,t);let o=gn.dot(gn),a=gn.dot(Vn),c=gn.dot(Nl),l=Vn.dot(Vn),u=Vn.dot(Nl),h=o*l-a*a;if(h===0)return r.set(0,0,0),null;let d=1\/h,f=(l*c-a*u)*d,g=(o*u-a*c)*d;return r.set(1-f-g,g,f);}static containsPoint(e,t,n,s){var _guard156,_guard157;return this.getBarycoord(e,t,n,s,kn)===null?!1:(_guard157=(_guard156=kn.x>=0,_guard156?kn.y>=0:_guard156),_guard157?kn.x+kn.y<=1:_guard157);}static getInterpolation(e,t,n,s,r,o,a,c){var _guard158,_guard159;return this.getBarycoord(e,t,n,s,kn)===null?(c.x=0,c.y=0,_guard158=\"z\"in c,_guard158?c.z=0:_guard158,_guard159=\"w\"in c,_guard159?c.w=0:_guard159,null):(c.setScalar(0),c.addScaledVector(r,kn.x),c.addScaledVector(o,kn.y),c.addScaledVector(a,kn.z),c);}static getInterpolatedAttribute(e,t,n,s,r,o){return zl.setScalar(0),Vl.setScalar(0),kl.setScalar(0),zl.fromBufferAttribute(e,t),Vl.fromBufferAttribute(e,n),kl.fromBufferAttribute(e,s),o.setScalar(0),o.addScaledVector(zl,r.x),o.addScaledVector(Vl,r.y),o.addScaledVector(kl,r.z),o;}static isFrontFacing(e,t,n,s){return gn.subVectors(n,t),Vn.subVectors(e,t),gn.cross(Vn).dot(s)<0;}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this;}setFromPointsAndIndices(e,t,n,s){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[s]),this;}setFromAttributeAndIndices(e,t,n,s){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,s),this;}clone(){return new this.constructor().copy(this);}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this;}getArea(){return gn.subVectors(this.c,this.b),Vn.subVectors(this.a,this.b),gn.cross(Vn).length()*.5;}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1\/3);}getNormal(e){return i.getNormal(this.a,this.b,this.c,e);}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c);}getBarycoord(e,t){return i.getBarycoord(e,this.a,this.b,this.c,t);}getInterpolation(e,t,n,s,r){return i.getInterpolation(e,this.a,this.b,this.c,t,n,s,r);}containsPoint(e){return i.containsPoint(e,this.a,this.b,this.c);}isFrontFacing(e){return i.isFrontFacing(this.a,this.b,this.c,e);}intersectsBox(e){return e.intersectsTriangle(this);}closestPointToPoint(e,t){var _guard160,_guard161,_guard162,_guard163,_guard164,_guard165,_guard166,_guard167,_guard168;let n=this.a,s=this.b,r=this.c,o,a;ns.subVectors(s,n),is.subVectors(r,n),Fl.subVectors(e,n);let c=ns.dot(Fl),l=is.dot(Fl);if(_guard160=c<=0,_guard160?l<=0:_guard160)return t.copy(n);Ol.subVectors(e,s);let u=ns.dot(Ol),h=is.dot(Ol);if(_guard161=u>=0,_guard161?h<=u:_guard161)return t.copy(s);let d=c*h-u*l;if(_guard163=(_guard162=d<=0,_guard162?c>=0:_guard162),_guard163?u<=0:_guard163)return o=c\/(c-u),t.copy(n).addScaledVector(ns,o);Bl.subVectors(e,r);let f=ns.dot(Bl),g=is.dot(Bl);if(_guard164=g>=0,_guard164?f<=g:_guard164)return t.copy(r);let _=f*l-c*g;if(_guard166=(_guard165=_<=0,_guard165?l>=0:_guard165),_guard166?g<=0:_guard166)return a=l\/(l-g),t.copy(n).addScaledVector(is,a);let m=u*g-f*h;if(_guard168=(_guard167=m<=0,_guard167?h-u>=0:_guard167),_guard168?f-g>=0:_guard168)return Hu.subVectors(r,s),a=(h-u)\/(h-u+(f-g)),t.copy(s).addScaledVector(Hu,a);let p=1\/(m+_+d);return o=_*p,a=d*p,t.copy(n).addScaledVector(ns,o).addScaledVector(is,a);}equals(e){var _guard169,_guard170;return _guard170=(_guard169=e.a.equals(this.a),_guard169?e.b.equals(this.b):_guard169),_guard170?e.c.equals(this.c):_guard170;}},Gh={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},ai={h:0,s:0,l:0},jr={h:0,s:0,l:0};function Hl(i,e,t){var _guard171,_guard172;return _guard171=t<0,_guard171?t+=1:_guard171,_guard172=t>1,_guard172?t-=1:_guard172,t<1\/6?i+(e-i)*6*t:t<1\/2?e:t<2\/3?i+(e-i)*6*(2\/3-t):i;}var $e=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n);}set(e,t,n){var _guard173;if(_guard173=t===void 0,_guard173?n===void 0:_guard173){var _guard174,_guard175;let s=e;(_guard174=s,_guard174?s.isColor:_guard174)?this.copy(s):typeof s==\"number\"?this.setHex(s):(_guard175=typeof s==\"string\",_guard175?this.setStyle(s):_guard175);}else this.setRGB(e,t,n);return this;}setScalar(e){return this.r=e,this.g=e,this.b=e,this;}setHex(e,t=Vt){return e=Math.floor(e),this.r=~(~(e>>16)|~255)\/255,this.g=~(~(e>>8)|~255)\/255,this.b=~(~e|~255)\/255,rt.colorSpaceToWorking(this,t),this;}setRGB(e,t,n,s=rt.workingColorSpace){return this.r=e,this.g=t,this.b=n,rt.colorSpaceToWorking(this,s),this;}setHSL(e,t,n,s=rt.workingColorSpace){if(e=Lf(e,1),t=nt(t,0,1),n=nt(n,0,1),t===0)this.r=this.g=this.b=n;else{let r=n<=.5?n*(1+t):n+t-n*t,o=2*n-r;this.r=Hl(o,r,e+1\/3),this.g=Hl(o,r,e),this.b=Hl(o,r,e-1\/3);}return rt.colorSpaceToWorking(this,s),this;}setStyle(e,t=Vt){var _guard178;function n(r){var _guard176,_guard177;_guard177=(_guard176=r!==void 0,_guard176?parseFloat(r)<1:_guard176),_guard177?console.warn(\"THREE.Color: Alpha component of \"+e+\" will be ignored.\"):_guard177;}let s;if(s=\/^(\\w+)\\(([^\\)]*)\\)\/.exec(e)){let r,o=s[1],a=s[2];switch(o){case\"rgb\":case\"rgba\":if(r=\/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$\/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))\/255,Math.min(255,parseInt(r[2],10))\/255,Math.min(255,parseInt(r[3],10))\/255,t);if(r=\/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$\/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))\/100,Math.min(100,parseInt(r[2],10))\/100,Math.min(100,parseInt(r[3],10))\/100,t);break;case\"hsl\":case\"hsla\":if(r=\/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$\/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])\/360,parseFloat(r[2])\/100,parseFloat(r[3])\/100,t);break;default:console.warn(\"THREE.Color: Unknown color model \"+e);}}else if(s=\/^\\#([A-Fa-f\\d]+)$\/.exec(e)){let r=s[1],o=r.length;if(o===3)return this.setRGB(parseInt(r.charAt(0),16)\/15,parseInt(r.charAt(1),16)\/15,parseInt(r.charAt(2),16)\/15,t);if(o===6)return this.setHex(parseInt(r,16),t);console.warn(\"THREE.Color: Invalid hex color \"+e);}else if(_guard178=e,_guard178?e.length>0:_guard178)return this.setColorName(e,t);return this;}setColorName(e,t=Vt){let n=Gh[e.toLowerCase()];return n!==void 0?this.setHex(n,t):console.warn(\"THREE.Color: Unknown color \"+e),this;}clone(){return new this.constructor(this.r,this.g,this.b);}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this;}copySRGBToLinear(e){return this.r=Gn(e.r),this.g=Gn(e.g),this.b=Gn(e.b),this;}copyLinearToSRGB(e){return this.r=as(e.r),this.g=as(e.g),this.b=as(e.b),this;}convertSRGBToLinear(){return this.copySRGBToLinear(this),this;}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this;}getHex(e=Vt){return rt.workingToColorSpace(Nt.copy(this),e),Math.round(nt(Nt.r*255,0,255))*65536+Math.round(nt(Nt.g*255,0,255))*256+Math.round(nt(Nt.b*255,0,255));}getHexString(e=Vt){return(\"000000\"+this.getHex(e).toString(16)).slice(-6);}getHSL(e,t=rt.workingColorSpace){rt.workingToColorSpace(Nt.copy(this),t);let n=Nt.r,s=Nt.g,r=Nt.b,o=Math.max(n,s,r),a=Math.min(n,s,r),c,l,u=(a+o)\/2;if(a===o)c=0,l=0;else{let h=o-a;switch(l=u<=.5?h\/(o+a):h\/(2-o-a),o){case n:c=(s-r)\/h+(s<r?6:0);break;case s:c=(r-n)\/h+2;break;case r:c=(n-s)\/h+4;break;}c\/=6;}return e.h=c,e.s=l,e.l=u,e;}getRGB(e,t=rt.workingColorSpace){return rt.workingToColorSpace(Nt.copy(this),t),e.r=Nt.r,e.g=Nt.g,e.b=Nt.b,e;}getStyle(e=Vt){rt.workingToColorSpace(Nt.copy(this),e);let t=Nt.r,n=Nt.g,s=Nt.b;return e!==Vt?`color(${e} ${t.toFixed(3)} ${n.toFixed(3)} ${s.toFixed(3)})`:`rgb(${Math.round(t*255)},${Math.round(n*255)},${Math.round(s*255)})`;}offsetHSL(e,t,n){return this.getHSL(ai),this.setHSL(ai.h+e,ai.s+t,ai.l+n);}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this;}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this;}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this;}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this;}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this;}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this;}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this;}lerpColors(e,t,n){return this.r=e.r+(t.r-e.r)*n,this.g=e.g+(t.g-e.g)*n,this.b=e.b+(t.b-e.b)*n,this;}lerpHSL(e,t){this.getHSL(ai),e.getHSL(jr);let n=Tl(ai.h,jr.h,t),s=Tl(ai.s,jr.s,t),r=Tl(ai.l,jr.l,t);return this.setHSL(n,s,r),this;}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this;}applyMatrix3(e){let t=this.r,n=this.g,s=this.b,r=e.elements;return this.r=r[0]*t+r[3]*n+r[6]*s,this.g=r[1]*t+r[4]*n+r[7]*s,this.b=r[2]*t+r[5]*n+r[8]*s,this;}equals(e){var _guard179,_guard180;return _guard180=(_guard179=e.r===this.r,_guard179?e.g===this.g:_guard179),_guard180?e.b===this.b:_guard180;}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this;}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e;}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),this;}toJSON(){return this.getHex();}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b;}},Nt=new $e();$e.NAMES=Gh;var Wf=0,Yn=class extends Xn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,\"id\",{value:Wf++}),this.uuid=Tr(),this.name=\"\",this.type=\"Material\",this.blending=wi,this.side=Wn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=yo,this.blendDst=vo,this.blendEquation=ui,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new $e(0,0,0),this.blendAlpha=0,this.depthFunc=Ci,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=tc,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Ai,this.stencilZFail=Ai,this.stencilZPass=Ai,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0;}get alphaTest(){return this._alphaTest;}set alphaTest(e){var _guard181;_guard181=this._alphaTest>0!=e>0,_guard181?this.version++:_guard181,this._alphaTest=e;}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString();}setValues(e){if(e!==void 0)for(let t in e){var _guard182,_guard183,_guard184,_guard185;let n=e[t];if(n===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue;}let s=this[t];if(s===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue;}(_guard182=s,_guard182?s.isColor:_guard182)?s.set(n):(_guard185=(_guard184=(_guard183=s,_guard183?s.isVector3:_guard183),_guard184?n:_guard184),_guard185?n.isVector3:_guard185)?s.copy(n):this[t]=n;}}toJSON(e){var _guard186,_guard187,_guard188,_guard189,_guard190,_guard191,_guard192,_guard193,_guard194,_guard195,_guard196,_guard197,_guard198,_guard199,_guard200,_guard201,_guard202,_guard203,_guard204,_guard205,_guard206,_guard207,_guard208,_guard209,_guard210,_guard211,_guard212,_guard213,_guard214,_guard215,_guard216,_guard217,_guard218,_guard219,_guard220,_guard221,_guard222,_guard223,_guard224,_guard225,_guard226,_guard227,_guard228,_guard229,_guard230,_guard231,_guard232,_guard233,_guard234,_guard235,_guard236,_guard237,_guard238,_guard239,_guard240,_guard241,_guard242,_guard243,_guard244,_guard245,_guard246,_guard247,_guard248,_guard249,_guard250,_guard251,_guard252,_guard253,_guard254,_guard255,_guard256,_guard257,_guard258,_guard259,_guard260,_guard261,_guard262,_guard263,_guard264,_guard265,_guard266,_guard267,_guard268,_guard269,_guard270,_guard271,_guard272,_guard273,_guard274,_guard275,_guard276,_guard277,_guard278,_guard279,_guard280,_guard281,_guard282,_guard283,_guard284,_guard285,_guard286,_guard287,_guard288,_guard289,_guard290,_guard291,_guard292,_guard293,_guard294,_guard295,_guard296,_guard297,_guard298,_guard299,_guard300,_guard301,_guard302,_guard303,_guard304,_guard305,_guard306,_guard307,_guard308,_guard309,_guard310,_guard311,_guard312,_guard313,_guard314,_guard315,_guard316,_guard317,_guard318,_guard319,_guard320,_guard321,_guard322,_guard323,_guard324,_guard325,_guard326,_guard327,_guard328,_guard329;let t=e===void 0||typeof e==\"string\";_guard186=t,_guard186?e={textures:{},images:{}}:_guard186;let n={metadata:{version:4.7,type:\"Material\",generator:\"Material.toJSON\"}};n.uuid=this.uuid,n.type=this.type,_guard187=this.name!==\"\",_guard187?n.name=this.name:_guard187,_guard189=(_guard188=this.color,_guard188?this.color.isColor:_guard188),_guard189?n.color=this.color.getHex():_guard189,_guard190=this.roughness!==void 0,_guard190?n.roughness=this.roughness:_guard190,_guard191=this.metalness!==void 0,_guard191?n.metalness=this.metalness:_guard191,_guard192=this.sheen!==void 0,_guard192?n.sheen=this.sheen:_guard192,_guard194=(_guard193=this.sheenColor,_guard193?this.sheenColor.isColor:_guard193),_guard194?n.sheenColor=this.sheenColor.getHex():_guard194,_guard195=this.sheenRoughness!==void 0,_guard195?n.sheenRoughness=this.sheenRoughness:_guard195,_guard197=(_guard196=this.emissive,_guard196?this.emissive.isColor:_guard196),_guard197?n.emissive=this.emissive.getHex():_guard197,_guard199=(_guard198=this.emissiveIntensity!==void 0,_guard198?this.emissiveIntensity!==1:_guard198),_guard199?n.emissiveIntensity=this.emissiveIntensity:_guard199,_guard201=(_guard200=this.specular,_guard200?this.specular.isColor:_guard200),_guard201?n.specular=this.specular.getHex():_guard201,_guard202=this.specularIntensity!==void 0,_guard202?n.specularIntensity=this.specularIntensity:_guard202,_guard204=(_guard203=this.specularColor,_guard203?this.specularColor.isColor:_guard203),_guard204?n.specularColor=this.specularColor.getHex():_guard204,_guard205=this.shininess!==void 0,_guard205?n.shininess=this.shininess:_guard205,_guard206=this.clearcoat!==void 0,_guard206?n.clearcoat=this.clearcoat:_guard206,_guard207=this.clearcoatRoughness!==void 0,_guard207?n.clearcoatRoughness=this.clearcoatRoughness:_guard207,_guard209=(_guard208=this.clearcoatMap,_guard208?this.clearcoatMap.isTexture:_guard208),_guard209?n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid:_guard209,_guard211=(_guard210=this.clearcoatRoughnessMap,_guard210?this.clearcoatRoughnessMap.isTexture:_guard210),_guard211?n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid:_guard211,_guard213=(_guard212=this.clearcoatNormalMap,_guard212?this.clearcoatNormalMap.isTexture:_guard212),_guard213?(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()):_guard213,_guard215=(_guard214=this.sheenColorMap,_guard214?this.sheenColorMap.isTexture:_guard214),_guard215?n.sheenColorMap=this.sheenColorMap.toJSON(e).uuid:_guard215,_guard217=(_guard216=this.sheenRoughnessMap,_guard216?this.sheenRoughnessMap.isTexture:_guard216),_guard217?n.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid:_guard217,_guard218=this.dispersion!==void 0,_guard218?n.dispersion=this.dispersion:_guard218,_guard219=this.iridescence!==void 0,_guard219?n.iridescence=this.iridescence:_guard219,_guard220=this.iridescenceIOR!==void 0,_guard220?n.iridescenceIOR=this.iridescenceIOR:_guard220,_guard221=this.iridescenceThicknessRange!==void 0,_guard221?n.iridescenceThicknessRange=this.iridescenceThicknessRange:_guard221,_guard223=(_guard222=this.iridescenceMap,_guard222?this.iridescenceMap.isTexture:_guard222),_guard223?n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid:_guard223,_guard225=(_guard224=this.iridescenceThicknessMap,_guard224?this.iridescenceThicknessMap.isTexture:_guard224),_guard225?n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid:_guard225,_guard226=this.anisotropy!==void 0,_guard226?n.anisotropy=this.anisotropy:_guard226,_guard227=this.anisotropyRotation!==void 0,_guard227?n.anisotropyRotation=this.anisotropyRotation:_guard227,_guard229=(_guard228=this.anisotropyMap,_guard228?this.anisotropyMap.isTexture:_guard228),_guard229?n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid:_guard229,_guard231=(_guard230=this.map,_guard230?this.map.isTexture:_guard230),_guard231?n.map=this.map.toJSON(e).uuid:_guard231,_guard233=(_guard232=this.matcap,_guard232?this.matcap.isTexture:_guard232),_guard233?n.matcap=this.matcap.toJSON(e).uuid:_guard233,_guard235=(_guard234=this.alphaMap,_guard234?this.alphaMap.isTexture:_guard234),_guard235?n.alphaMap=this.alphaMap.toJSON(e).uuid:_guard235,_guard237=(_guard236=this.lightMap,_guard236?this.lightMap.isTexture:_guard236),_guard237?(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity):_guard237,_guard239=(_guard238=this.aoMap,_guard238?this.aoMap.isTexture:_guard238),_guard239?(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity):_guard239,_guard241=(_guard240=this.bumpMap,_guard240?this.bumpMap.isTexture:_guard240),_guard241?(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale):_guard241,_guard243=(_guard242=this.normalMap,_guard242?this.normalMap.isTexture:_guard242),_guard243?(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()):_guard243,_guard245=(_guard244=this.displacementMap,_guard244?this.displacementMap.isTexture:_guard244),_guard245?(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias):_guard245,_guard247=(_guard246=this.roughnessMap,_guard246?this.roughnessMap.isTexture:_guard246),_guard247?n.roughnessMap=this.roughnessMap.toJSON(e).uuid:_guard247,_guard249=(_guard248=this.metalnessMap,_guard248?this.metalnessMap.isTexture:_guard248),_guard249?n.metalnessMap=this.metalnessMap.toJSON(e).uuid:_guard249,_guard251=(_guard250=this.emissiveMap,_guard250?this.emissiveMap.isTexture:_guard250),_guard251?n.emissiveMap=this.emissiveMap.toJSON(e).uuid:_guard251,_guard253=(_guard252=this.specularMap,_guard252?this.specularMap.isTexture:_guard252),_guard253?n.specularMap=this.specularMap.toJSON(e).uuid:_guard253,_guard255=(_guard254=this.specularIntensityMap,_guard254?this.specularIntensityMap.isTexture:_guard254),_guard255?n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid:_guard255,_guard257=(_guard256=this.specularColorMap,_guard256?this.specularColorMap.isTexture:_guard256),_guard257?n.specularColorMap=this.specularColorMap.toJSON(e).uuid:_guard257,_guard260=(_guard258=this.envMap,_guard258?this.envMap.isTexture:_guard258),_guard260?(n.envMap=this.envMap.toJSON(e).uuid,_guard259=this.combine!==void 0,_guard259?n.combine=this.combine:_guard259):_guard260,_guard261=this.envMapRotation!==void 0,_guard261?n.envMapRotation=this.envMapRotation.toArray():_guard261,_guard262=this.envMapIntensity!==void 0,_guard262?n.envMapIntensity=this.envMapIntensity:_guard262,_guard263=this.reflectivity!==void 0,_guard263?n.reflectivity=this.reflectivity:_guard263,_guard264=this.refractionRatio!==void 0,_guard264?n.refractionRatio=this.refractionRatio:_guard264,_guard266=(_guard265=this.gradientMap,_guard265?this.gradientMap.isTexture:_guard265),_guard266?n.gradientMap=this.gradientMap.toJSON(e).uuid:_guard266,_guard267=this.transmission!==void 0,_guard267?n.transmission=this.transmission:_guard267,_guard269=(_guard268=this.transmissionMap,_guard268?this.transmissionMap.isTexture:_guard268),_guard269?n.transmissionMap=this.transmissionMap.toJSON(e).uuid:_guard269,_guard270=this.thickness!==void 0,_guard270?n.thickness=this.thickness:_guard270,_guard272=(_guard271=this.thicknessMap,_guard271?this.thicknessMap.isTexture:_guard271),_guard272?n.thicknessMap=this.thicknessMap.toJSON(e).uuid:_guard272,_guard274=(_guard273=this.attenuationDistance!==void 0,_guard273?this.attenuationDistance!==1\/0:_guard273),_guard274?n.attenuationDistance=this.attenuationDistance:_guard274,_guard275=this.attenuationColor!==void 0,_guard275?n.attenuationColor=this.attenuationColor.getHex():_guard275,_guard276=this.size!==void 0,_guard276?n.size=this.size:_guard276,_guard277=this.shadowSide!==null,_guard277?n.shadowSide=this.shadowSide:_guard277,_guard278=this.sizeAttenuation!==void 0,_guard278?n.sizeAttenuation=this.sizeAttenuation:_guard278,_guard279=this.blending!==wi,_guard279?n.blending=this.blending:_guard279,_guard280=this.side!==Wn,_guard280?n.side=this.side:_guard280,_guard281=this.vertexColors===!0,_guard281?n.vertexColors=!0:_guard281,_guard282=this.opacity<1,_guard282?n.opacity=this.opacity:_guard282,_guard283=this.transparent===!0,_guard283?n.transparent=!0:_guard283,_guard284=this.blendSrc!==yo,_guard284?n.blendSrc=this.blendSrc:_guard284,_guard285=this.blendDst!==vo,_guard285?n.blendDst=this.blendDst:_guard285,_guard286=this.blendEquation!==ui,_guard286?n.blendEquation=this.blendEquation:_guard286,_guard287=this.blendSrcAlpha!==null,_guard287?n.blendSrcAlpha=this.blendSrcAlpha:_guard287,_guard288=this.blendDstAlpha!==null,_guard288?n.blendDstAlpha=this.blendDstAlpha:_guard288,_guard289=this.blendEquationAlpha!==null,_guard289?n.blendEquationAlpha=this.blendEquationAlpha:_guard289,_guard291=(_guard290=this.blendColor,_guard290?this.blendColor.isColor:_guard290),_guard291?n.blendColor=this.blendColor.getHex():_guard291,_guard292=this.blendAlpha!==0,_guard292?n.blendAlpha=this.blendAlpha:_guard292,_guard293=this.depthFunc!==Ci,_guard293?n.depthFunc=this.depthFunc:_guard293,_guard294=this.depthTest===!1,_guard294?n.depthTest=this.depthTest:_guard294,_guard295=this.depthWrite===!1,_guard295?n.depthWrite=this.depthWrite:_guard295,_guard296=this.colorWrite===!1,_guard296?n.colorWrite=this.colorWrite:_guard296,_guard297=this.stencilWriteMask!==255,_guard297?n.stencilWriteMask=this.stencilWriteMask:_guard297,_guard298=this.stencilFunc!==tc,_guard298?n.stencilFunc=this.stencilFunc:_guard298,_guard299=this.stencilRef!==0,_guard299?n.stencilRef=this.stencilRef:_guard299,_guard300=this.stencilFuncMask!==255,_guard300?n.stencilFuncMask=this.stencilFuncMask:_guard300,_guard301=this.stencilFail!==Ai,_guard301?n.stencilFail=this.stencilFail:_guard301,_guard302=this.stencilZFail!==Ai,_guard302?n.stencilZFail=this.stencilZFail:_guard302,_guard303=this.stencilZPass!==Ai,_guard303?n.stencilZPass=this.stencilZPass:_guard303,_guard304=this.stencilWrite===!0,_guard304?n.stencilWrite=this.stencilWrite:_guard304,_guard306=(_guard305=this.rotation!==void 0,_guard305?this.rotation!==0:_guard305),_guard306?n.rotation=this.rotation:_guard306,_guard307=this.polygonOffset===!0,_guard307?n.polygonOffset=!0:_guard307,_guard308=this.polygonOffsetFactor!==0,_guard308?n.polygonOffsetFactor=this.polygonOffsetFactor:_guard308,_guard309=this.polygonOffsetUnits!==0,_guard309?n.polygonOffsetUnits=this.polygonOffsetUnits:_guard309,_guard311=(_guard310=this.linewidth!==void 0,_guard310?this.linewidth!==1:_guard310),_guard311?n.linewidth=this.linewidth:_guard311,_guard312=this.dashSize!==void 0,_guard312?n.dashSize=this.dashSize:_guard312,_guard313=this.gapSize!==void 0,_guard313?n.gapSize=this.gapSize:_guard313,_guard314=this.scale!==void 0,_guard314?n.scale=this.scale:_guard314,_guard315=this.dithering===!0,_guard315?n.dithering=!0:_guard315,_guard316=this.alphaTest>0,_guard316?n.alphaTest=this.alphaTest:_guard316,_guard317=this.alphaHash===!0,_guard317?n.alphaHash=!0:_guard317,_guard318=this.alphaToCoverage===!0,_guard318?n.alphaToCoverage=!0:_guard318,_guard319=this.premultipliedAlpha===!0,_guard319?n.premultipliedAlpha=!0:_guard319,_guard320=this.forceSinglePass===!0,_guard320?n.forceSinglePass=!0:_guard320,_guard321=this.wireframe===!0,_guard321?n.wireframe=!0:_guard321,_guard322=this.wireframeLinewidth>1,_guard322?n.wireframeLinewidth=this.wireframeLinewidth:_guard322,_guard323=this.wireframeLinecap!==\"round\",_guard323?n.wireframeLinecap=this.wireframeLinecap:_guard323,_guard324=this.wireframeLinejoin!==\"round\",_guard324?n.wireframeLinejoin=this.wireframeLinejoin:_guard324,_guard325=this.flatShading===!0,_guard325?n.flatShading=!0:_guard325,_guard326=this.visible===!1,_guard326?n.visible=!1:_guard326,_guard327=this.toneMapped===!1,_guard327?n.toneMapped=!1:_guard327,_guard328=this.fog===!1,_guard328?n.fog=!1:_guard328,_guard329=Object.keys(this.userData).length>0,_guard329?n.userData=this.userData:_guard329;function s(r){let o=[];for(let a in r){let c=r[a];delete c.metadata,o.push(c);}return o;}if(t){var _guard330,_guard331;let r=s(e.textures),o=s(e.images);_guard330=r.length>0,_guard330?n.textures=r:_guard330,_guard331=o.length>0,_guard331?n.images=o:_guard331;}return n;}clone(){return new this.constructor().copy(this);}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(t!==null){let s=t.length;n=new Array(s);for(let r=0;r!==s;++r)n[r]=t[r].clone();}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this;}dispose(){this.dispatchEvent({type:\"dispose\"});}set needsUpdate(e){var _guard332;_guard332=e===!0,_guard332?this.version++:_guard332;}},js=class extends Yn{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type=\"MeshBasicMaterial\",this.color=new $e(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new yn(),this.combine=hc,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.fog=!0,this.setValues(e);}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this;}};var Et=new N(),eo=new ze(),Xf=0,kt=class{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.isBufferAttribute=!0,Object.defineProperty(this,\"id\",{value:Xf++}),this.name=\"\",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length\/t:0,this.normalized=n,this.usage=nc,this.updateRanges=[],this.gpuType=Cn,this.version=0;}onUploadCallback(){}set needsUpdate(e){var _guard333;_guard333=e===!0,_guard333?this.version++:_guard333;}setUsage(e){return this.usage=e,this;}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t});}clearUpdateRanges(){this.updateRanges.length=0;}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this;}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let s=0,r=this.itemSize;s<r;s++)this.array[e+s]=t.array[n+s];return this;}copyArray(e){return this.array.set(e),this;}applyMatrix3(e){if(this.itemSize===2)for(let t=0,n=this.count;t<n;t++)eo.fromBufferAttribute(this,t),eo.applyMatrix3(e),this.setXY(t,eo.x,eo.y);else if(this.itemSize===3)for(let t=0,n=this.count;t<n;t++)Et.fromBufferAttribute(this,t),Et.applyMatrix3(e),this.setXYZ(t,Et.x,Et.y,Et.z);return this;}applyMatrix4(e){for(let t=0,n=this.count;t<n;t++)Et.fromBufferAttribute(this,t),Et.applyMatrix4(e),this.setXYZ(t,Et.x,Et.y,Et.z);return this;}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++)Et.fromBufferAttribute(this,t),Et.applyNormalMatrix(e),this.setXYZ(t,Et.x,Et.y,Et.z);return this;}transformDirection(e){for(let t=0,n=this.count;t<n;t++)Et.fromBufferAttribute(this,t),Et.transformDirection(e),this.setXYZ(t,Et.x,Et.y,Et.z);return this;}set(e,t=0){return this.array.set(e,t),this;}getComponent(e,t){var _guard334;let n=this.array[e*this.itemSize+t];return _guard334=this.normalized,_guard334?n=Bs(n,this.array):_guard334,n;}setComponent(e,t,n){var _guard335;return _guard335=this.normalized,_guard335?n=qt(n,this.array):_guard335,this.array[e*this.itemSize+t]=n,this;}getX(e){var _guard336;let t=this.array[e*this.itemSize];return _guard336=this.normalized,_guard336?t=Bs(t,this.array):_guard336,t;}setX(e,t){var _guard337;return _guard337=this.normalized,_guard337?t=qt(t,this.array):_guard337,this.array[e*this.itemSize]=t,this;}getY(e){var _guard338;let t=this.array[e*this.itemSize+1];return _guard338=this.normalized,_guard338?t=Bs(t,this.array):_guard338,t;}setY(e,t){var _guard339;return _guard339=this.normalized,_guard339?t=qt(t,this.array):_guard339,this.array[e*this.itemSize+1]=t,this;}getZ(e){var _guard340;let t=this.array[e*this.itemSize+2];return _guard340=this.normalized,_guard340?t=Bs(t,this.array):_guard340,t;}setZ(e,t){var _guard341;return _guard341=this.normalized,_guard341?t=qt(t,this.array):_guard341,this.array[e*this.itemSize+2]=t,this;}getW(e){var _guard342;let t=this.array[e*this.itemSize+3];return _guard342=this.normalized,_guard342?t=Bs(t,this.array):_guard342,t;}setW(e,t){var _guard343;return _guard343=this.normalized,_guard343?t=qt(t,this.array):_guard343,this.array[e*this.itemSize+3]=t,this;}setXY(e,t,n){var _guard344;return e*=this.itemSize,_guard344=this.normalized,_guard344?(t=qt(t,this.array),n=qt(n,this.array)):_guard344,this.array[e+0]=t,this.array[e+1]=n,this;}setXYZ(e,t,n,s){var _guard345;return e*=this.itemSize,_guard345=this.normalized,_guard345?(t=qt(t,this.array),n=qt(n,this.array),s=qt(s,this.array)):_guard345,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=s,this;}setXYZW(e,t,n,s,r){var _guard346;return e*=this.itemSize,_guard346=this.normalized,_guard346?(t=qt(t,this.array),n=qt(n,this.array),s=qt(s,this.array),r=qt(r,this.array)):_guard346,this.array[e+0]=t,this.array[e+1]=n,this.array[e+2]=s,this.array[e+3]=r,this;}onUpload(e){return this.onUploadCallback=e,this;}clone(){return new this.constructor(this.array,this.itemSize).copy(this);}toJSON(){var _guard347,_guard348;let e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return _guard347=this.name!==\"\",_guard347?e.name=this.name:_guard347,_guard348=this.usage!==nc,_guard348?e.usage=this.usage:_guard348,e;}};var er=class extends kt{constructor(e,t,n){super(new Uint16Array(e),t,n);}};var tr=class extends kt{constructor(e,t,n){super(new Uint32Array(e),t,n);}};var ft=class extends kt{constructor(e,t,n){super(new Float32Array(e),t,n);}},qf=0,on=new gt(),Gl=new Lt(),ss=new N(),Qt=new hi(),Hs=new hi(),Dt=new N(),Ot=class i extends Xn{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,\"id\",{value:qf++}),this.uuid=Tr(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.indirect=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1\/0},this.userData={};}getIndex(){return this.index;}setIndex(e){return Array.isArray(e)?this.index=new(Tc(e)?tr:er)(e,1):this.index=e,this;}setIndirect(e){return this.indirect=e,this;}getIndirect(){return this.indirect;}getAttribute(e){return this.attributes[e];}setAttribute(e,t){return this.attributes[e]=t,this;}deleteAttribute(e){return delete this.attributes[e],this;}hasAttribute(e){return this.attributes[e]!==void 0;}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n});}clearGroups(){this.groups=[];}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t;}applyMatrix4(e){var _guard349,_guard350,_guard351,_guard352;let t=this.attributes.position;_guard349=t!==void 0,_guard349?(t.applyMatrix4(e),t.needsUpdate=!0):_guard349;let n=this.attributes.normal;if(n!==void 0){let r=new Ye().getNormalMatrix(e);n.applyNormalMatrix(r),n.needsUpdate=!0;}let s=this.attributes.tangent;return _guard350=s!==void 0,_guard350?(s.transformDirection(e),s.needsUpdate=!0):_guard350,_guard351=this.boundingBox!==null,_guard351?this.computeBoundingBox():_guard351,_guard352=this.boundingSphere!==null,_guard352?this.computeBoundingSphere():_guard352,this;}applyQuaternion(e){return on.makeRotationFromQuaternion(e),this.applyMatrix4(on),this;}rotateX(e){return on.makeRotationX(e),this.applyMatrix4(on),this;}rotateY(e){return on.makeRotationY(e),this.applyMatrix4(on),this;}rotateZ(e){return on.makeRotationZ(e),this.applyMatrix4(on),this;}translate(e,t,n){return on.makeTranslation(e,t,n),this.applyMatrix4(on),this;}scale(e,t,n){return on.makeScale(e,t,n),this.applyMatrix4(on),this;}lookAt(e){return Gl.lookAt(e),Gl.updateMatrix(),this.applyMatrix4(Gl.matrix),this;}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(ss).negate(),this.translate(ss.x,ss.y,ss.z),this;}setFromPoints(e){let t=this.getAttribute(\"position\");if(t===void 0){let n=[];for(let s=0,r=e.length;s<r;s++){let o=e[s];n.push(o.x,o.y,o.z||0);}this.setAttribute(\"position\",new ft(n,3));}else{var _guard353;let n=Math.min(e.length,t.count);for(let s=0;s<n;s++){let r=e[s];t.setXYZ(s,r.x,r.y,r.z||0);}_guard353=e.length>t.count,_guard353?console.warn(\"THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.\"):_guard353,t.needsUpdate=!0;}return this;}computeBoundingBox(){var _guard354,_guard355,_guard356;_guard354=this.boundingBox===null,_guard354?this.boundingBox=new hi():_guard354;let e=this.attributes.position,t=this.morphAttributes.position;if(_guard355=e,_guard355?e.isGLBufferAttribute:_guard355){console.error(\"THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.\",this),this.boundingBox.set(new N(-1\/0,-1\/0,-1\/0),new N(1\/0,1\/0,1\/0));return;}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let n=0,s=t.length;n<s;n++){let r=t[n];Qt.setFromBufferAttribute(r),this.morphTargetsRelative?(Dt.addVectors(this.boundingBox.min,Qt.min),this.boundingBox.expandByPoint(Dt),Dt.addVectors(this.boundingBox.max,Qt.max),this.boundingBox.expandByPoint(Dt)):(this.boundingBox.expandByPoint(Qt.min),this.boundingBox.expandByPoint(Qt.max));}}else this.boundingBox.makeEmpty();_guard356=isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z),_guard356?console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min\/max have NaN values. The \"position\" attribute is likely to have NaN values.',this):_guard356;}computeBoundingSphere(){var _guard357,_guard358;_guard357=this.boundingSphere===null,_guard357?this.boundingSphere=new Ii():_guard357;let e=this.attributes.position,t=this.morphAttributes.position;if(_guard358=e,_guard358?e.isGLBufferAttribute:_guard358){console.error(\"THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.\",this),this.boundingSphere.set(new N(),1\/0);return;}if(e){var _guard360;let n=this.boundingSphere.center;if(Qt.setFromBufferAttribute(e),t)for(let r=0,o=t.length;r<o;r++){let a=t[r];Hs.setFromBufferAttribute(a),this.morphTargetsRelative?(Dt.addVectors(Qt.min,Hs.min),Qt.expandByPoint(Dt),Dt.addVectors(Qt.max,Hs.max),Qt.expandByPoint(Dt)):(Qt.expandByPoint(Hs.min),Qt.expandByPoint(Hs.max));}Qt.getCenter(n);let s=0;for(let r=0,o=e.count;r<o;r++)Dt.fromBufferAttribute(e,r),s=Math.max(s,n.distanceToSquared(Dt));if(t)for(let r=0,o=t.length;r<o;r++){let a=t[r],c=this.morphTargetsRelative;for(let l=0,u=a.count;l<u;l++){var _guard359;Dt.fromBufferAttribute(a,l),_guard359=c,_guard359?(ss.fromBufferAttribute(e,l),Dt.add(ss)):_guard359,s=Math.max(s,n.distanceToSquared(Dt));}}this.boundingSphere.radius=Math.sqrt(s),_guard360=isNaN(this.boundingSphere.radius),_guard360?console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this):_guard360;}}computeTangents(){var _guard361,_guard363;let e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");return;}let n=t.position,s=t.normal,r=t.uv;_guard361=this.hasAttribute(\"tangent\")===!1,_guard361?this.setAttribute(\"tangent\",new kt(new Float32Array(4*n.count),4)):_guard361;let o=this.getAttribute(\"tangent\"),a=[],c=[];for(let F=0;F<n.count;F++)a[F]=new N(),c[F]=new N();let l=new N(),u=new N(),h=new N(),d=new ze(),f=new ze(),g=new ze(),_=new N(),m=new N();function p(F,M,S){var _guard362;l.fromBufferAttribute(n,F),u.fromBufferAttribute(n,M),h.fromBufferAttribute(n,S),d.fromBufferAttribute(r,F),f.fromBufferAttribute(r,M),g.fromBufferAttribute(r,S),u.sub(l),h.sub(l),f.sub(d),g.sub(d);let L=1\/(f.x*g.y-g.x*f.y);_guard362=isFinite(L),_guard362?(_.copy(u).multiplyScalar(g.y).addScaledVector(h,-f.y).multiplyScalar(L),m.copy(h).multiplyScalar(f.x).addScaledVector(u,-g.x).multiplyScalar(L),a[F].add(_),a[M].add(_),a[S].add(_),c[F].add(m),c[M].add(m),c[S].add(m)):_guard362;}let E=this.groups;_guard363=E.length===0,_guard363?E=[{start:0,count:e.count}]:_guard363;for(let F=0,M=E.length;F<M;++F){let S=E[F],L=S.start,z=S.count;for(let $=L,Q=L+z;$<Q;$+=3)p(e.getX($+0),e.getX($+1),e.getX($+2));}let T=new N(),y=new N(),R=new N(),w=new N();function P(F){R.fromBufferAttribute(s,F),w.copy(R);let M=a[F];T.copy(M),T.sub(R.multiplyScalar(R.dot(M))).normalize(),y.crossVectors(w,M);let L=y.dot(c[F])<0?-1:1;o.setXYZW(F,T.x,T.y,T.z,L);}for(let F=0,M=E.length;F<M;++F){let S=E[F],L=S.start,z=S.count;for(let $=L,Q=L+z;$<Q;$+=3)P(e.getX($+0)),P(e.getX($+1)),P(e.getX($+2));}}computeVertexNormals(){let e=this.index,t=this.getAttribute(\"position\");if(t!==void 0){let n=this.getAttribute(\"normal\");if(n===void 0)n=new kt(new Float32Array(t.count*3),3),this.setAttribute(\"normal\",n);else for(let d=0,f=n.count;d<f;d++)n.setXYZ(d,0,0,0);let s=new N(),r=new N(),o=new N(),a=new N(),c=new N(),l=new N(),u=new N(),h=new N();if(e)for(let d=0,f=e.count;d<f;d+=3){let g=e.getX(d+0),_=e.getX(d+1),m=e.getX(d+2);s.fromBufferAttribute(t,g),r.fromBufferAttribute(t,_),o.fromBufferAttribute(t,m),u.subVectors(o,r),h.subVectors(s,r),u.cross(h),a.fromBufferAttribute(n,g),c.fromBufferAttribute(n,_),l.fromBufferAttribute(n,m),a.add(u),c.add(u),l.add(u),n.setXYZ(g,a.x,a.y,a.z),n.setXYZ(_,c.x,c.y,c.z),n.setXYZ(m,l.x,l.y,l.z);}else for(let d=0,f=t.count;d<f;d+=3)s.fromBufferAttribute(t,d+0),r.fromBufferAttribute(t,d+1),o.fromBufferAttribute(t,d+2),u.subVectors(o,r),h.subVectors(s,r),u.cross(h),n.setXYZ(d+0,u.x,u.y,u.z),n.setXYZ(d+1,u.x,u.y,u.z),n.setXYZ(d+2,u.x,u.y,u.z);this.normalizeNormals(),n.needsUpdate=!0;}}normalizeNormals(){let e=this.attributes.normal;for(let t=0,n=e.count;t<n;t++)Dt.fromBufferAttribute(e,t),Dt.normalize(),e.setXYZ(t,Dt.x,Dt.y,Dt.z);}toNonIndexed(){function e(a,c){let l=a.array,u=a.itemSize,h=a.normalized,d=new l.constructor(c.length*u),f=0,g=0;for(let _=0,m=c.length;_<m;_++){a.isInterleavedBufferAttribute?f=c[_]*a.data.stride+a.offset:f=c[_]*u;for(let p=0;p<u;p++)d[g++]=l[f++];}return new kt(d,u,h);}if(this.index===null)return console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\"),this;let t=new i(),n=this.index.array,s=this.attributes;for(let a in s){let c=s[a],l=e(c,n);t.setAttribute(a,l);}let r=this.morphAttributes;for(let a in r){let c=[],l=r[a];for(let u=0,h=l.length;u<h;u++){let d=l[u],f=e(d,n);c.push(f);}t.morphAttributes[a]=c;}t.morphTargetsRelative=this.morphTargetsRelative;let o=this.groups;for(let a=0,c=o.length;a<c;a++){let l=o[a];t.addGroup(l.start,l.count,l.materialIndex);}return t;}toJSON(){var _guard364,_guard365,_guard367,_guard369,_guard370,_guard371;let e={metadata:{version:4.7,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};if(e.uuid=this.uuid,e.type=this.type,_guard364=this.name!==\"\",_guard364?e.name=this.name:_guard364,_guard365=Object.keys(this.userData).length>0,_guard365?e.userData=this.userData:_guard365,this.parameters!==void 0){let c=this.parameters;for(let l in c){var _guard366;_guard366=c[l]!==void 0,_guard366?e[l]=c[l]:_guard366;}return e;}e.data={attributes:{}};let t=this.index;_guard367=t!==null,_guard367?e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)}:_guard367;let n=this.attributes;for(let c in n){let l=n[c];e.data.attributes[c]=l.toJSON(e.data);}let s={},r=!1;for(let c in this.morphAttributes){var _guard368;let l=this.morphAttributes[c],u=[];for(let h=0,d=l.length;h<d;h++){let f=l[h];u.push(f.toJSON(e.data));}_guard368=u.length>0,_guard368?(s[c]=u,r=!0):_guard368;}_guard369=r,_guard369?(e.data.morphAttributes=s,e.data.morphTargetsRelative=this.morphTargetsRelative):_guard369;let o=this.groups;_guard370=o.length>0,_guard370?e.data.groups=JSON.parse(JSON.stringify(o)):_guard370;let a=this.boundingSphere;return _guard371=a!==null,_guard371?e.data.boundingSphere=a.toJSON():_guard371,e;}clone(){return new this.constructor().copy(this);}copy(e){var _guard372,_guard373,_guard374;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;_guard372=n!==null,_guard372?this.setIndex(n.clone()):_guard372;let s=e.attributes;for(let l in s){let u=s[l];this.setAttribute(l,u.clone(t));}let r=e.morphAttributes;for(let l in r){let u=[],h=r[l];for(let d=0,f=h.length;d<f;d++)u.push(h[d].clone(t));this.morphAttributes[l]=u;}this.morphTargetsRelative=e.morphTargetsRelative;let o=e.groups;for(let l=0,u=o.length;l<u;l++){let h=o[l];this.addGroup(h.start,h.count,h.materialIndex);}let a=e.boundingBox;_guard373=a!==null,_guard373?this.boundingBox=a.clone():_guard373;let c=e.boundingSphere;return _guard374=c!==null,_guard374?this.boundingSphere=c.clone():_guard374,this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this;}dispose(){this.dispatchEvent({type:\"dispose\"});}},Gu=new gt(),Ti=new Ks(),to=new Ii(),Wu=new N(),no=new N(),io=new N(),so=new N(),Wl=new N(),ro=new N(),Xu=new N(),oo=new N(),Ht=class extends Lt{constructor(e=new Ot(),t=new js()){super(),this.isMesh=!0,this.type=\"Mesh\",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets();}copy(e,t){var _guard375,_guard376;return super.copy(e,t),_guard375=e.morphTargetInfluences!==void 0,_guard375?this.morphTargetInfluences=e.morphTargetInfluences.slice():_guard375,_guard376=e.morphTargetDictionary!==void 0,_guard376?this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary):_guard376,this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this;}updateMorphTargets(){let t=this.geometry.morphAttributes,n=Object.keys(t);if(n.length>0){let s=t[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r;}}}}getVertexPosition(e,t){var _guard377;let n=this.geometry,s=n.attributes.position,r=n.morphAttributes.position,o=n.morphTargetsRelative;t.fromBufferAttribute(s,e);let a=this.morphTargetInfluences;if(_guard377=r,_guard377?a:_guard377){ro.set(0,0,0);for(let c=0,l=r.length;c<l;c++){var _guard378;let u=a[c],h=r[c];_guard378=u!==0,_guard378?(Wl.fromBufferAttribute(h,e),o?ro.addScaledVector(Wl,u):ro.addScaledVector(Wl.sub(t),u)):_guard378;}t.add(ro);}return t;}raycast(e,t){var _guard379,_guard380,_guard381,_guard382,_guard383,_guard384;let n=this.geometry,s=this.material,r=this.matrixWorld;_guard384=s!==void 0,_guard384?(_guard379=n.boundingSphere===null,_guard379?n.computeBoundingSphere():_guard379,to.copy(n.boundingSphere),to.applyMatrix4(r),Ti.copy(e.ray).recast(e.near),_guard383=!(_guard380=to.containsPoint(Ti.origin)===!1,_guard380?Ti.intersectSphere(to,Wu)===null||Ti.origin.distanceToSquared(Wu)>(e.far-e.near)**2:_guard380),_guard383?(Gu.copy(r).invert(),Ti.copy(e.ray).applyMatrix4(Gu),_guard382=!(_guard381=n.boundingBox!==null,_guard381?Ti.intersectsBox(n.boundingBox)===!1:_guard381),_guard382?this._computeIntersections(e,t,Ti):_guard382):_guard383):_guard384;}_computeIntersections(e,t,n){let s,r=this.geometry,o=this.material,a=r.index,c=r.attributes.position,l=r.attributes.uv,u=r.attributes.uv1,h=r.attributes.normal,d=r.groups,f=r.drawRange;if(a!==null){if(Array.isArray(o))for(let g=0,_=d.length;g<_;g++){let m=d[g],p=o[m.materialIndex],E=Math.max(m.start,f.start),T=Math.min(a.count,Math.min(m.start+m.count,f.start+f.count));for(let y=E,R=T;y<R;y+=3){var _guard385;let w=a.getX(y),P=a.getX(y+1),F=a.getX(y+2);s=ao(this,p,e,n,l,u,h,w,P,F),_guard385=s,_guard385?(s.faceIndex=Math.floor(y\/3),s.face.materialIndex=m.materialIndex,t.push(s)):_guard385;}}else{let g=Math.max(0,f.start),_=Math.min(a.count,f.start+f.count);for(let m=g,p=_;m<p;m+=3){var _guard386;let E=a.getX(m),T=a.getX(m+1),y=a.getX(m+2);s=ao(this,o,e,n,l,u,h,E,T,y),_guard386=s,_guard386?(s.faceIndex=Math.floor(m\/3),t.push(s)):_guard386;}}}else if(c!==void 0)if(Array.isArray(o))for(let g=0,_=d.length;g<_;g++){let m=d[g],p=o[m.materialIndex],E=Math.max(m.start,f.start),T=Math.min(c.count,Math.min(m.start+m.count,f.start+f.count));for(let y=E,R=T;y<R;y+=3){var _guard387;let w=y,P=y+1,F=y+2;s=ao(this,p,e,n,l,u,h,w,P,F),_guard387=s,_guard387?(s.faceIndex=Math.floor(y\/3),s.face.materialIndex=m.materialIndex,t.push(s)):_guard387;}}else{let g=Math.max(0,f.start),_=Math.min(c.count,f.start+f.count);for(let m=g,p=_;m<p;m+=3){var _guard388;let E=m,T=m+1,y=m+2;s=ao(this,o,e,n,l,u,h,E,T,y),_guard388=s,_guard388?(s.faceIndex=Math.floor(m\/3),t.push(s)):_guard388;}}}};function Yf(i,e,t,n,s,r,o,a){let c;if(e.side===Gt?c=n.intersectTriangle(o,r,s,!0,a):c=n.intersectTriangle(s,r,o,e.side===Wn,a),c===null)return null;oo.copy(a),oo.applyMatrix4(i.matrixWorld);let l=t.ray.origin.distanceTo(oo);return l<t.near||l>t.far?null:{distance:l,point:oo.clone(),object:i};}function ao(i,e,t,n,s,r,o,a,c,l){i.getVertexPosition(a,no),i.getVertexPosition(c,io),i.getVertexPosition(l,so);let u=Yf(i,e,t,n,no,io,so,Xu);if(u){var _guard389,_guard390,_guard391,_guard392;let h=new N();Hn.getBarycoord(Xu,no,io,so,h),_guard389=s,_guard389?u.uv=Hn.getInterpolatedAttribute(s,a,c,l,h,new ze()):_guard389,_guard390=r,_guard390?u.uv1=Hn.getInterpolatedAttribute(r,a,c,l,h,new ze()):_guard390,_guard392=o,_guard392?(u.normal=Hn.getInterpolatedAttribute(o,a,c,l,h,new N()),_guard391=u.normal.dot(n.direction)>0,_guard391?u.normal.multiplyScalar(-1):_guard391):_guard392;let d={a,b:c,c:l,normal:new N(),materialIndex:0};Hn.getNormal(no,io,so,d.normal),u.face=d,u.barycoord=h;}return u;}var ln=class i extends Ot{constructor(e=1,t=1,n=1,s=1,r=1,o=1){super(),this.type=\"BoxGeometry\",this.parameters={width:e,height:t,depth:n,widthSegments:s,heightSegments:r,depthSegments:o};let a=this;s=Math.floor(s),r=Math.floor(r),o=Math.floor(o);let c=[],l=[],u=[],h=[],d=0,f=0;g(\"z\",\"y\",\"x\",-1,-1,n,t,e,o,r,0),g(\"z\",\"y\",\"x\",1,-1,n,t,-e,o,r,1),g(\"x\",\"z\",\"y\",1,1,e,n,t,s,o,2),g(\"x\",\"z\",\"y\",1,-1,e,n,-t,s,o,3),g(\"x\",\"y\",\"z\",1,-1,e,t,n,s,r,4),g(\"x\",\"y\",\"z\",-1,-1,e,t,-n,s,r,5),this.setIndex(c),this.setAttribute(\"position\",new ft(l,3)),this.setAttribute(\"normal\",new ft(u,3)),this.setAttribute(\"uv\",new ft(h,2));function g(_,m,p,E,T,y,R,w,P,F,M){let S=y\/P,L=R\/F,z=y\/2,$=R\/2,Q=w\/2,O=P+1,W=F+1,ae=0,H=0,q=new N();for(let ce=0;ce<W;ce++){let ge=ce*L-$;for(let Pe=0;Pe<O;Pe++){let Fe=Pe*S-z;q[_]=Fe*E,q[m]=ge*T,q[p]=Q,l.push(q.x,q.y,q.z),q[_]=0,q[m]=0,q[p]=w>0?1:-1,u.push(q.x,q.y,q.z),h.push(Pe\/P),h.push(1-ce\/F),ae+=1;}}for(let ce=0;ce<F;ce++)for(let ge=0;ge<P;ge++){let Pe=d+ge+O*ce,Fe=d+ge+O*(ce+1),ve=d+(ge+1)+O*(ce+1),Ie=d+(ge+1)+O*ce;c.push(Pe,Fe,Ie),c.push(Fe,ve,Ie),H+=6;}a.addGroup(f,H,M),f+=H,d+=ae;}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}static fromJSON(e){return new i(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments);}};function Oi(i){let e={};for(let t in i){e[t]={};for(let n in i[t]){var _guard393;let s=i[t][n];(_guard393=s,_guard393?s.isColor||s.isMatrix3||s.isMatrix4||s.isVector2||s.isVector3||s.isVector4||s.isTexture||s.isQuaternion:_guard393)?s.isRenderTargetTexture?(console.warn(\"UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().\"),e[t][n]=null):e[t][n]=s.clone():Array.isArray(s)?e[t][n]=s.slice():e[t][n]=s;}}return e;}function Bt(i){let e={};for(let t=0;t<i.length;t++){let n=Oi(i[t]);for(let s in n)e[s]=n[s];}return e;}function Zf(i){let e=[];for(let t=0;t<i.length;t++)e.push(i[t].clone());return e;}function Ec(i){let e=i.getRenderTarget();return e===null?i.outputColorSpace:e.isXRRenderTarget===!0?e.texture.colorSpace:rt.workingColorSpace;}var Wh={clone:Oi,merge:Bt},$f=`void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}`,Jf=`void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}`,vn=class extends Yn{constructor(e){var _guard394;super(),this.isShaderMaterial=!0,this.type=\"ShaderMaterial\",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=$f,this.fragmentShader=Jf,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,_guard394=e!==void 0,_guard394?this.setValues(e):_guard394;}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Oi(e.uniforms),this.uniformsGroups=Zf(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this;}toJSON(e){var _guard402,_guard404;let t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(let s in this.uniforms){var _guard395,_guard396,_guard397,_guard398,_guard399,_guard400,_guard401;let o=this.uniforms[s].value;(_guard395=o,_guard395?o.isTexture:_guard395)?t.uniforms[s]={type:\"t\",value:o.toJSON(e).uuid}:(_guard396=o,_guard396?o.isColor:_guard396)?t.uniforms[s]={type:\"c\",value:o.getHex()}:(_guard397=o,_guard397?o.isVector2:_guard397)?t.uniforms[s]={type:\"v2\",value:o.toArray()}:(_guard398=o,_guard398?o.isVector3:_guard398)?t.uniforms[s]={type:\"v3\",value:o.toArray()}:(_guard399=o,_guard399?o.isVector4:_guard399)?t.uniforms[s]={type:\"v4\",value:o.toArray()}:(_guard400=o,_guard400?o.isMatrix3:_guard400)?t.uniforms[s]={type:\"m3\",value:o.toArray()}:(_guard401=o,_guard401?o.isMatrix4:_guard401)?t.uniforms[s]={type:\"m4\",value:o.toArray()}:t.uniforms[s]={value:o};}_guard402=Object.keys(this.defines).length>0,_guard402?t.defines=this.defines:_guard402,t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let s in this.extensions){var _guard403;_guard403=this.extensions[s]===!0,_guard403?n[s]=!0:_guard403;}return _guard404=Object.keys(n).length>0,_guard404?t.extensions=n:_guard404,t;}},nr=class extends Lt{constructor(){super(),this.isCamera=!0,this.type=\"Camera\",this.matrixWorldInverse=new gt(),this.projectionMatrix=new gt(),this.projectionMatrixInverse=new gt(),this.coordinateSystem=_n,this._reversedDepth=!1;}get reversedDepth(){return this._reversedDepth;}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this;}getWorldDirection(e){return super.getWorldDirection(e).negate();}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert();}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert();}clone(){return new this.constructor().copy(this);}},li=new N(),qu=new ze(),Yu=new ze(),Ft=class extends nr{constructor(e=50,t=1,n=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type=\"PerspectiveCamera\",this.fov=e,this.zoom=1,this.near=n,this.far=s,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix();}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this;}setFocalLength(e){let t=.5*this.getFilmHeight()\/e;this.fov=To*2*Math.atan(t),this.updateProjectionMatrix();}getFocalLength(){let e=Math.tan(xo*.5*this.fov);return .5*this.getFilmHeight()\/e;}getEffectiveFOV(){return To*2*Math.atan(Math.tan(xo*.5*this.fov)\/this.zoom);}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1);}getFilmHeight(){return this.filmGauge\/Math.max(this.aspect,1);}getViewBounds(e,t,n){li.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(li.x,li.y).multiplyScalar(-e\/li.z),li.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(li.x,li.y).multiplyScalar(-e\/li.z);}getViewSize(e,t){return this.getViewBounds(e,qu,Yu),t.subVectors(Yu,qu);}setViewOffset(e,t,n,s,r,o){var _guard405;this.aspect=e\/t,_guard405=this.view===null,_guard405?this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}:_guard405,this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=o,this.updateProjectionMatrix();}clearViewOffset(){var _guard406;_guard406=this.view!==null,_guard406?this.view.enabled=!1:_guard406,this.updateProjectionMatrix();}updateProjectionMatrix(){var _guard407,_guard408;let e=this.near,t=e*Math.tan(xo*.5*this.fov)\/this.zoom,n=2*t,s=this.aspect*n,r=-.5*s,o=this.view;if(_guard407=this.view!==null,_guard407?this.view.enabled:_guard407){let c=o.fullWidth,l=o.fullHeight;r+=o.offsetX*s\/c,t-=o.offsetY*n\/l,s*=o.width\/c,n*=o.height\/l;}let a=this.filmOffset;_guard408=a!==0,_guard408?r+=e*a\/this.getFilmWidth():_guard408,this.projectionMatrix.makePerspective(r,r+s,t,t-n,e,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert();}toJSON(e){var _guard409;let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,_guard409=this.view!==null,_guard409?t.object.view=Object.assign({},this.view):_guard409,t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t;}},rs=-90,os=1,Co=class extends Lt{constructor(e,t,n){super(),this.type=\"CubeCamera\",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;let s=new Ft(rs,os,e,t);s.layers=this.layers,this.add(s);let r=new Ft(rs,os,e,t);r.layers=this.layers,this.add(r);let o=new Ft(rs,os,e,t);o.layers=this.layers,this.add(o);let a=new Ft(rs,os,e,t);a.layers=this.layers,this.add(a);let c=new Ft(rs,os,e,t);c.layers=this.layers,this.add(c);let l=new Ft(rs,os,e,t);l.layers=this.layers,this.add(l);}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[n,s,r,o,a,c]=t;for(let l of t)this.remove(l);if(e===_n)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Zs)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error(\"THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: \"+e);for(let l of t)this.add(l),l.updateMatrixWorld();}update(e,t){var _guard410,_guard411;_guard410=this.parent===null,_guard410?this.updateMatrixWorld():_guard410;let{renderTarget:n,activeMipmapLevel:s}=this;_guard411=this.coordinateSystem!==e.coordinateSystem,_guard411?(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem()):_guard411;let[r,o,a,c,l,u]=this.children,h=e.getRenderTarget(),d=e.getActiveCubeFace(),f=e.getActiveMipmapLevel(),g=e.xr.enabled;e.xr.enabled=!1;let _=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,s),e.render(t,r),e.setRenderTarget(n,1,s),e.render(t,o),e.setRenderTarget(n,2,s),e.render(t,a),e.setRenderTarget(n,3,s),e.render(t,c),e.setRenderTarget(n,4,s),e.render(t,l),n.texture.generateMipmaps=_,e.setRenderTarget(n,5,s),e.render(t,u),e.setRenderTarget(h,d,f),e.xr.enabled=g,n.texture.needsPMREMUpdate=!0;}},ir=class extends jt{constructor(e=[],t=Ni,n,s,r,o,a,c,l,u){super(e,t,n,s,r,o,a,c,l,u),this.isCubeTexture=!0,this.flipY=!1;}get images(){return this.image;}set images(e){this.image=e;}},Ro=class extends En{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let n={width:e,height:e,depth:1},s=[n,n,n,n,n,n];this.texture=new ir(s),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0;}fromEquirectangularTexture(e,t){var _guard412;this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`},s=new ln(5,5,5),r=new vn({name:\"CubemapFromEquirect\",uniforms:Oi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Gt,blending:Zn});r.uniforms.tEquirect.value=t;let o=new Ht(s,r),a=t.minFilter;return _guard412=t.minFilter===mi,_guard412?t.minFilter=xn:_guard412,new Co(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this;}clear(e,t=!0,n=!0,s=!0){let r=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,n,s);e.setRenderTarget(r);}},_t=class extends Lt{constructor(){super(),this.isGroup=!0,this.type=\"Group\";}},Kf={type:\"move\"},hs=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null;}getHandSpace(){var _guard413;return _guard413=this._hand===null,_guard413?(this._hand=new _t(),this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}):_guard413,this._hand;}getTargetRaySpace(){var _guard414;return _guard414=this._targetRay===null,_guard414?(this._targetRay=new _t(),this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new N(),this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new N()):_guard414,this._targetRay;}getGripSpace(){var _guard415;return _guard415=this._grip===null,_guard415?(this._grip=new _t(),this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new N(),this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new N()):_guard415,this._grip;}dispatchEvent(e){var _guard416,_guard417,_guard418;return _guard416=this._targetRay!==null,_guard416?this._targetRay.dispatchEvent(e):_guard416,_guard417=this._grip!==null,_guard417?this._grip.dispatchEvent(e):_guard417,_guard418=this._hand!==null,_guard418?this._hand.dispatchEvent(e):_guard418,this;}connect(e){var _guard419;if(_guard419=e,_guard419?e.hand:_guard419){let t=this._hand;if(t)for(let n of e.hand.values())this._getHandJoint(t,n);}return this.dispatchEvent({type:\"connected\",data:e}),this;}disconnect(e){var _guard420,_guard421,_guard422;return this.dispatchEvent({type:\"disconnected\",data:e}),_guard420=this._targetRay!==null,_guard420?this._targetRay.visible=!1:_guard420,_guard421=this._grip!==null,_guard421?this._grip.visible=!1:_guard421,_guard422=this._hand!==null,_guard422?this._hand.visible=!1:_guard422,this;}update(e,t,n){var _guard423,_guard436,_guard437,_guard438;let s=null,r=null,o=null,a=this._targetRay,c=this._grip,l=this._hand;if(_guard423=e,_guard423?t.session.visibilityState!==\"visible-blurred\":_guard423){var _guard424,_guard429,_guard430,_guard431,_guard432,_guard433,_guard434,_guard435;if(_guard424=l,_guard424?e.hand:_guard424){var _guard426,_guard427,_guard428;o=!0;for(let _ of e.hand.values()){var _guard425;let m=t.getJointPose(_,n),p=this._getHandJoint(l,_);_guard425=m!==null,_guard425?(p.matrix.fromArray(m.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.matrixWorldNeedsUpdate=!0,p.jointRadius=m.radius):_guard425,p.visible=m!==null;}let u=l.joints[\"index-finger-tip\"],h=l.joints[\"thumb-tip\"],d=u.position.distanceTo(h.position),f=.02,g=.005;(_guard426=l.inputState.pinching,_guard426?d>f+g:_guard426)?(l.inputState.pinching=!1,this.dispatchEvent({type:\"pinchend\",handedness:e.handedness,target:this})):(_guard428=(_guard427=!l.inputState.pinching,_guard427?d<=f-g:_guard427),_guard428?(l.inputState.pinching=!0,this.dispatchEvent({type:\"pinchstart\",handedness:e.handedness,target:this})):_guard428);}else _guard431=(_guard429=c!==null,_guard429?e.gripSpace:_guard429),_guard431?(r=t.getPose(e.gripSpace,n),_guard430=r!==null,_guard430?(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1):_guard430):_guard431;_guard435=a!==null,_guard435?(s=t.getPose(e.targetRaySpace,n),_guard433=(_guard432=s===null,_guard432?r!==null:_guard432),_guard433?s=r:_guard433,_guard434=s!==null,_guard434?(a.matrix.fromArray(s.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,s.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(s.linearVelocity)):a.hasLinearVelocity=!1,s.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(s.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Kf)):_guard434):_guard435;}return _guard436=a!==null,_guard436?a.visible=s!==null:_guard436,_guard437=c!==null,_guard437?c.visible=r!==null:_guard437,_guard438=l!==null,_guard438?l.visible=o!==null:_guard438,this;}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let n=new _t();n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n);}return e.joints[t.jointName];}};var sr=class i{constructor(e,t=1,n=1e3){this.isFog=!0,this.name=\"\",this.color=new $e(e),this.near=t,this.far=n;}clone(){return new i(this.color,this.near,this.far);}toJSON(){return{type:\"Fog\",name:this.name,color:this.color.getHex(),near:this.near,far:this.far};}},rr=class extends Lt{constructor(){var _guard439;super(),this.isScene=!0,this.type=\"Scene\",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new yn(),this.environmentIntensity=1,this.environmentRotation=new yn(),this.overrideMaterial=null,_guard439=typeof __THREE_DEVTOOLS__<\"u\",_guard439?__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this})):_guard439;}copy(e,t){var _guard440,_guard441,_guard442,_guard443;return super.copy(e,t),_guard440=e.background!==null,_guard440?this.background=e.background.clone():_guard440,_guard441=e.environment!==null,_guard441?this.environment=e.environment.clone():_guard441,_guard442=e.fog!==null,_guard442?this.fog=e.fog.clone():_guard442,this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),_guard443=e.overrideMaterial!==null,_guard443?this.overrideMaterial=e.overrideMaterial.clone():_guard443,this.matrixAutoUpdate=e.matrixAutoUpdate,this;}toJSON(e){var _guard444,_guard445,_guard446,_guard447;let t=super.toJSON(e);return _guard444=this.fog!==null,_guard444?t.object.fog=this.fog.toJSON():_guard444,_guard445=this.backgroundBlurriness>0,_guard445?t.object.backgroundBlurriness=this.backgroundBlurriness:_guard445,_guard446=this.backgroundIntensity!==1,_guard446?t.object.backgroundIntensity=this.backgroundIntensity:_guard446,t.object.backgroundRotation=this.backgroundRotation.toArray(),_guard447=this.environmentIntensity!==1,_guard447?t.object.environmentIntensity=this.environmentIntensity:_guard447,t.object.environmentRotation=this.environmentRotation.toArray(),t;}};var Xl=new N(),Qf=new N(),jf=new Ye(),Tn=class{constructor(e=new N(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t;}set(e,t){return this.normal.copy(e),this.constant=t,this;}setComponents(e,t,n,s){return this.normal.set(e,t,n),this.constant=s,this;}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this;}setFromCoplanarPoints(e,t,n){let s=Xl.subVectors(n,t).cross(Qf.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(s,e),this;}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this;}normalize(){let e=1\/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this;}negate(){return this.constant*=-1,this.normal.negate(),this;}distanceToPoint(e){return this.normal.dot(e)+this.constant;}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius;}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e));}intersectLine(e,t){let n=e.delta(Xl),s=this.normal.dot(n);if(s===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let r=-(e.start.dot(this.normal)+this.constant)\/s;return r<0||r>1?null:t.copy(e.start).addScaledVector(n,r);}intersectsLine(e){var _guard448,_guard449;let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return(_guard448=t<0,_guard448?n>0:_guard448)||(_guard449=n<0,_guard449?t>0:_guard449);}intersectsBox(e){return e.intersectsPlane(this);}intersectsSphere(e){return e.intersectsPlane(this);}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant);}applyMatrix4(e,t){let n=t||jf.getNormalMatrix(e),s=this.coplanarPoint(Xl).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(r),this;}translate(e){return this.constant-=e.dot(this.normal),this;}equals(e){var _guard450;return _guard450=e.normal.equals(this.normal),_guard450?e.constant===this.constant:_guard450;}clone(){return new this.constructor().copy(this);}},Ei=new Ii(),ep=new ze(.5,.5),lo=new N(),ds=class{constructor(e=new Tn(),t=new Tn(),n=new Tn(),s=new Tn(),r=new Tn(),o=new Tn()){this.planes=[e,t,n,s,r,o];}set(e,t,n,s,r,o){let a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(s),a[4].copy(r),a[5].copy(o),this;}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this;}setFromProjectionMatrix(e,t=_n,n=!1){let s=this.planes,r=e.elements,o=r[0],a=r[1],c=r[2],l=r[3],u=r[4],h=r[5],d=r[6],f=r[7],g=r[8],_=r[9],m=r[10],p=r[11],E=r[12],T=r[13],y=r[14],R=r[15];if(s[0].setComponents(l-o,f-u,p-g,R-E).normalize(),s[1].setComponents(l+o,f+u,p+g,R+E).normalize(),s[2].setComponents(l+a,f+h,p+_,R+T).normalize(),s[3].setComponents(l-a,f-h,p-_,R-T).normalize(),n)s[4].setComponents(c,d,m,y).normalize(),s[5].setComponents(l-c,f-d,p-m,R-y).normalize();else if(s[4].setComponents(l-c,f-d,p-m,R-y).normalize(),t===_n)s[5].setComponents(l+c,f+d,p+m,R+y).normalize();else if(t===Zs)s[5].setComponents(c,d,m,y).normalize();else throw new Error(\"THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: \"+t);return this;}intersectsObject(e){var _guard451;if(e.boundingSphere!==void 0)_guard451=e.boundingSphere===null,_guard451?e.computeBoundingSphere():_guard451,Ei.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{var _guard452;let t=e.geometry;_guard452=t.boundingSphere===null,_guard452?t.computeBoundingSphere():_guard452,Ei.copy(t.boundingSphere).applyMatrix4(e.matrixWorld);}return this.intersectsSphere(Ei);}intersectsSprite(e){Ei.center.set(0,0,0);let t=ep.distanceTo(e.center);return Ei.radius=.7071067811865476+t,Ei.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ei);}intersectsSphere(e){let t=this.planes,n=e.center,s=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(n)<s)return!1;return!0;}intersectsBox(e){let t=this.planes;for(let n=0;n<6;n++){let s=t[n];if(lo.x=s.normal.x>0?e.max.x:e.min.x,lo.y=s.normal.y>0?e.max.y:e.min.y,lo.z=s.normal.z>0?e.max.z:e.min.z,s.distanceToPoint(lo)<0)return!1;}return!0;}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0;}clone(){return new this.constructor().copy(this);}};var Pi=class extends Yn{constructor(e){super(),this.isLineBasicMaterial=!0,this.type=\"LineBasicMaterial\",this.color=new $e(16777215),this.map=null,this.linewidth=1,this.linecap=\"round\",this.linejoin=\"round\",this.fog=!0,this.setValues(e);}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this;}},Io=new N(),Po=new N(),Zu=new gt(),Gs=new Ks(),co=new Ii(),ql=new N(),$u=new N(),Do=class extends Lt{constructor(e=new Ot(),t=new Pi()){super(),this.isLine=!0,this.type=\"Line\",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets();}copy(e,t){return super.copy(e,t),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this;}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,n=[0];for(let s=1,r=t.count;s<r;s++)Io.fromBufferAttribute(t,s-1),Po.fromBufferAttribute(t,s),n[s]=n[s-1],n[s]+=Io.distanceTo(Po);e.setAttribute(\"lineDistance\",new ft(n,1));}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");return this;}raycast(e,t){var _guard453;let n=this.geometry,s=this.matrixWorld,r=e.params.Line.threshold,o=n.drawRange;if(_guard453=n.boundingSphere===null,_guard453?n.computeBoundingSphere():_guard453,co.copy(n.boundingSphere),co.applyMatrix4(s),co.radius+=r,e.ray.intersectsSphere(co)===!1)return;Zu.copy(s).invert(),Gs.copy(e.ray).applyMatrix4(Zu);let a=r\/((this.scale.x+this.scale.y+this.scale.z)\/3),c=a*a,l=this.isLineSegments?2:1,u=n.index,d=n.attributes.position;if(u!==null){let f=Math.max(0,o.start),g=Math.min(u.count,o.start+o.count);for(let _=f,m=g-1;_<m;_+=l){var _guard454;let p=u.getX(_),E=u.getX(_+1),T=uo(this,e,Gs,c,p,E,_);_guard454=T,_guard454?t.push(T):_guard454;}if(this.isLineLoop){var _guard455;let _=u.getX(g-1),m=u.getX(f),p=uo(this,e,Gs,c,_,m,g-1);_guard455=p,_guard455?t.push(p):_guard455;}}else{let f=Math.max(0,o.start),g=Math.min(d.count,o.start+o.count);for(let _=f,m=g-1;_<m;_+=l){var _guard456;let p=uo(this,e,Gs,c,_,_+1,_);_guard456=p,_guard456?t.push(p):_guard456;}if(this.isLineLoop){var _guard457;let _=uo(this,e,Gs,c,g-1,f,g-1);_guard457=_,_guard457?t.push(_):_guard457;}}}updateMorphTargets(){let t=this.geometry.morphAttributes,n=Object.keys(t);if(n.length>0){let s=t[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r;}}}}};function uo(i,e,t,n,s,r,o){let a=i.geometry.attributes.position;if(Io.fromBufferAttribute(a,s),Po.fromBufferAttribute(a,r),t.distanceSqToSegment(Io,Po,ql,$u)>n)return;ql.applyMatrix4(i.matrixWorld);let l=e.ray.origin.distanceTo(ql);if(!(l<e.near||l>e.far))return{distance:l,point:$u.clone().applyMatrix4(i.matrixWorld),index:o,face:null,faceIndex:null,barycoord:null,object:i};}var Ju=new N(),Ku=new N(),fs=class extends Do{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type=\"LineSegments\";}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,n=[];for(let s=0,r=t.count;s<r;s+=2)Ju.fromBufferAttribute(t,s),Ku.fromBufferAttribute(t,s+1),n[s]=s===0?0:n[s-1],n[s+1]=n[s]+Ju.distanceTo(Ku);e.setAttribute(\"lineDistance\",new ft(n,1));}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");return this;}};var or=class extends jt{constructor(e,t,n=gi,s,r,o,a=an,c=an,l,u=ls,h=1){var _guard458;if(_guard458=u!==ls,_guard458?u!==vs:_guard458)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");let d={width:e,height:t,depth:h};super(d,s,r,o,a,c,u,n,l),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null;}copy(e){return super.copy(e),this.source=new us(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this;}toJSON(e){var _guard459;let t=super.toJSON(e);return _guard459=this.compareFunction!==null,_guard459?t.compareFunction=this.compareFunction:_guard459,t;}},ar=class extends jt{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0;}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this;}};var Di=class i extends Ot{constructor(e=1,t=1,n=1,s=32,r=1,o=!1,a=0,c=Math.PI*2){var _guard460,_guard461,_guard462;super(),this.type=\"CylinderGeometry\",this.parameters={radiusTop:e,radiusBottom:t,height:n,radialSegments:s,heightSegments:r,openEnded:o,thetaStart:a,thetaLength:c};let l=this;s=Math.floor(s),r=Math.floor(r);let u=[],h=[],d=[],f=[],g=0,_=[],m=n\/2,p=0;E(),_guard462=o===!1,_guard462?(_guard460=e>0,_guard460?T(!0):_guard460,_guard461=t>0,_guard461?T(!1):_guard461):_guard462,this.setIndex(u),this.setAttribute(\"position\",new ft(h,3)),this.setAttribute(\"normal\",new ft(d,3)),this.setAttribute(\"uv\",new ft(f,2));function E(){let y=new N(),R=new N(),w=0,P=(t-e)\/n;for(let F=0;F<=r;F++){let M=[],S=F\/r,L=S*(t-e)+e;for(let z=0;z<=s;z++){let $=z\/s,Q=$*c+a,O=Math.sin(Q),W=Math.cos(Q);R.x=L*O,R.y=-S*n+m,R.z=L*W,h.push(R.x,R.y,R.z),y.set(O,P,W).normalize(),d.push(y.x,y.y,y.z),f.push($,1-S),M.push(g++);}_.push(M);}for(let F=0;F<s;F++)for(let M=0;M<r;M++){var _guard463,_guard464;let S=_[M][F],L=_[M+1][F],z=_[M+1][F+1],$=_[M][F+1];_guard463=e>0||M!==0,_guard463?(u.push(S,L,$),w+=3):_guard463,_guard464=t>0||M!==r-1,_guard464?(u.push(L,z,$),w+=3):_guard464;}l.addGroup(p,w,0),p+=w;}function T(y){let R=g,w=new ze(),P=new N(),F=0,M=y===!0?e:t,S=y===!0?1:-1;for(let z=1;z<=s;z++)h.push(0,m*S,0),d.push(0,S,0),f.push(.5,.5),g++;let L=g;for(let z=0;z<=s;z++){let Q=z\/s*c+a,O=Math.cos(Q),W=Math.sin(Q);P.x=M*W,P.y=m*S,P.z=M*O,h.push(P.x,P.y,P.z),d.push(0,S,0),w.x=O*.5+.5,w.y=W*.5*S+.5,f.push(w.x,w.y),g++;}for(let z=0;z<s;z++){let $=R+z,Q=L+z;y===!0?u.push(Q,Q+1,$):u.push(Q+1,Q,$),F+=3;}l.addGroup(p,F,y===!0?1:2),p+=F;}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}static fromJSON(e){return new i(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength);}},di=class i extends Di{constructor(e=1,t=1,n=32,s=1,r=!1,o=0,a=Math.PI*2){super(0,e,t,n,s,r,o,a),this.type=\"ConeGeometry\",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:s,openEnded:r,thetaStart:o,thetaLength:a};}static fromJSON(e){return new i(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength);}};var ho=new N(),fo=new N(),Yl=new N(),po=new Hn(),ps=class extends Ot{constructor(e=null,t=1){if(super(),this.type=\"EdgesGeometry\",this.parameters={geometry:e,thresholdAngle:t},e!==null){let s=Math.pow(10,4),r=Math.cos(xo*t),o=e.getIndex(),a=e.getAttribute(\"position\"),c=o?o.count:a.count,l=[0,0,0],u=[\"a\",\"b\",\"c\"],h=new Array(3),d={},f=[];for(let g=0;g<c;g+=3){o?(l[0]=o.getX(g),l[1]=o.getX(g+1),l[2]=o.getX(g+2)):(l[0]=g,l[1]=g+1,l[2]=g+2);let{a:_,b:m,c:p}=po;if(_.fromBufferAttribute(a,l[0]),m.fromBufferAttribute(a,l[1]),p.fromBufferAttribute(a,l[2]),po.getNormal(Yl),h[0]=`${Math.round(_.x*s)},${Math.round(_.y*s)},${Math.round(_.z*s)}`,h[1]=`${Math.round(m.x*s)},${Math.round(m.y*s)},${Math.round(m.z*s)}`,h[2]=`${Math.round(p.x*s)},${Math.round(p.y*s)},${Math.round(p.z*s)}`,!(h[0]===h[1]||h[1]===h[2]||h[2]===h[0]))for(let E=0;E<3;E++){var _guard465,_guard466;let T=(E+1)%3,y=h[E],R=h[T],w=po[u[E]],P=po[u[T]],F=`${y}_${R}`,M=`${R}_${y}`;(_guard465=M in d,_guard465?d[M]:_guard465)?(_guard466=Yl.dot(d[M].normal)<=r,_guard466?(f.push(w.x,w.y,w.z),f.push(P.x,P.y,P.z)):_guard466,d[M]=null):F in d||(d[F]={index0:l[E],index1:l[T],normal:Yl.clone()});}}for(let g in d)if(d[g]){let{index0:_,index1:m}=d[g];ho.fromBufferAttribute(a,_),fo.fromBufferAttribute(a,m),f.push(ho.x,ho.y,ho.z),f.push(fo.x,fo.y,fo.z);}this.setAttribute(\"position\",new ft(f,3));}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}},cn=class{constructor(){this.type=\"Curve\",this.arcLengthDivisions=200,this.needsUpdate=!1,this.cacheArcLengths=null;}getPoint(){console.warn(\"THREE.Curve: .getPoint() not implemented.\");}getPointAt(e,t){let n=this.getUtoTmapping(e);return this.getPoint(n,t);}getPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n\/e));return t;}getSpacedPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n\/e));return t;}getLength(){let e=this.getLengths();return e[e.length-1];}getLengths(e=this.arcLengthDivisions){var _guard467,_guard468;if(_guard468=(_guard467=this.cacheArcLengths,_guard467?this.cacheArcLengths.length===e+1:_guard467),_guard468?!this.needsUpdate:_guard468)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],n,s=this.getPoint(0),r=0;t.push(0);for(let o=1;o<=e;o++)n=this.getPoint(o\/e),r+=n.distanceTo(s),t.push(r),s=n;return this.cacheArcLengths=t,t;}updateArcLengths(){this.needsUpdate=!0,this.getLengths();}getUtoTmapping(e,t=null){let n=this.getLengths(),s=0,r=n.length,o;t?o=t:o=e*n[r-1];let a=0,c=r-1,l;for(;a<=c;)if(s=Math.floor(a+(c-a)\/2),l=n[s]-o,l<0)a=s+1;else if(l>0)c=s-1;else{c=s;break;}if(s=c,n[s]===o)return s\/(r-1);let u=n[s],d=n[s+1]-u,f=(o-u)\/d;return(s+f)\/(r-1);}getTangent(e,t){var _guard469,_guard470;let s=e-1e-4,r=e+1e-4;_guard469=s<0,_guard469?s=0:_guard469,_guard470=r>1,_guard470?r=1:_guard470;let o=this.getPoint(s),a=this.getPoint(r),c=t||(o.isVector2?new ze():new N());return c.copy(a).sub(o).normalize(),c;}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t);}computeFrenetFrames(e,t=!1){var _guard471,_guard472,_guard473;let n=new N(),s=[],r=[],o=[],a=new N(),c=new gt();for(let f=0;f<=e;f++){let g=f\/e;s[f]=this.getTangentAt(g,new N());}r[0]=new N(),o[0]=new N();let l=Number.MAX_VALUE,u=Math.abs(s[0].x),h=Math.abs(s[0].y),d=Math.abs(s[0].z);_guard471=u<=l,_guard471?(l=u,n.set(1,0,0)):_guard471,_guard472=h<=l,_guard472?(l=h,n.set(0,1,0)):_guard472,_guard473=d<=l,_guard473?n.set(0,0,1):_guard473,a.crossVectors(s[0],n).normalize(),r[0].crossVectors(s[0],a),o[0].crossVectors(s[0],r[0]);for(let f=1;f<=e;f++){if(r[f]=r[f-1].clone(),o[f]=o[f-1].clone(),a.crossVectors(s[f-1],s[f]),a.length()>Number.EPSILON){a.normalize();let g=Math.acos(nt(s[f-1].dot(s[f]),-1,1));r[f].applyMatrix4(c.makeRotationAxis(a,g));}o[f].crossVectors(s[f],r[f]);}if(t===!0){var _guard474;let f=Math.acos(nt(r[0].dot(r[e]),-1,1));f\/=e,_guard474=s[0].dot(a.crossVectors(r[0],r[e]))>0,_guard474?f=-f:_guard474;for(let g=1;g<=e;g++)r[g].applyMatrix4(c.makeRotationAxis(s[g],f*g)),o[g].crossVectors(s[g],r[g]);}return{tangents:s,normals:r,binormals:o};}clone(){return new this.constructor().copy(this);}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this;}toJSON(){let e={metadata:{version:4.7,type:\"Curve\",generator:\"Curve.toJSON\"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e;}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this;}},lr=class extends cn{constructor(e=0,t=0,n=1,s=1,r=0,o=Math.PI*2,a=!1,c=0){super(),this.isEllipseCurve=!0,this.type=\"EllipseCurve\",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=s,this.aStartAngle=r,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c;}getPoint(e,t=new ze()){var _guard475,_guard476,_guard477;let n=t,s=Math.PI*2,r=this.aEndAngle-this.aStartAngle,o=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=s;for(;r>s;)r-=s;_guard475=r<Number.EPSILON,_guard475?o?r=0:r=s:_guard475,_guard477=(_guard476=this.aClockwise===!0,_guard476?!o:_guard476),_guard477?r===s?r=-s:r=r-s:_guard477;let a=this.aStartAngle+e*r,c=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(this.aRotation!==0){let u=Math.cos(this.aRotation),h=Math.sin(this.aRotation),d=c-this.aX,f=l-this.aY;c=d*u-f*h+this.aX,l=d*h+f*u+this.aY;}return n.set(c,l);}copy(e){return super.copy(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this;}toJSON(){let e=super.toJSON();return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e;}fromJSON(e){return super.fromJSON(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this;}},Lo=class extends lr{constructor(e,t,n,s,r,o){super(e,t,n,n,s,r,o),this.isArcCurve=!0,this.type=\"ArcCurve\";}};function Ac(){let i=0,e=0,t=0,n=0;function s(r,o,a,c){i=r,e=a,t=-3*r+3*o-2*a-c,n=2*r-2*o+a+c;}return{initCatmullRom:function(r,o,a,c,l){s(o,a,l*(a-r),l*(c-o));},initNonuniformCatmullRom:function(r,o,a,c,l,u,h){let d=(o-r)\/l-(a-r)\/(l+u)+(a-o)\/u,f=(a-o)\/u-(c-o)\/(u+h)+(c-a)\/h;d*=u,f*=u,s(o,a,d,f);},calc:function(r){let o=r*r,a=o*r;return i+e*r+t*o+n*a;}};}var mo=new N(),Zl=new Ac(),$l=new Ac(),Jl=new Ac(),Li=class extends cn{constructor(e=[],t=!1,n=\"centripetal\",s=.5){super(),this.isCatmullRomCurve3=!0,this.type=\"CatmullRomCurve3\",this.points=e,this.closed=t,this.curveType=n,this.tension=s;}getPoint(e,t=new N()){var _guard478,_guard479,_guard483;let n=t,s=this.points,r=s.length,o=(r-(this.closed?0:1))*e,a=Math.floor(o),c=o-a;this.closed?a+=a>0?0:(Math.floor(Math.abs(a)\/r)+1)*r:(_guard479=(_guard478=c===0,_guard478?a===r-1:_guard478),_guard479?(a=r-2,c=1):_guard479);let l,u;this.closed||a>0?l=s[(a-1)%r]:(mo.subVectors(s[0],s[1]).add(s[0]),l=mo);let h=s[a%r],d=s[(a+1)%r];if(this.closed||a+2<r?u=s[(a+2)%r]:(mo.subVectors(s[r-1],s[r-2]).add(s[r-1]),u=mo),this.curveType===\"centripetal\"||this.curveType===\"chordal\"){var _guard480,_guard481,_guard482;let f=this.curveType===\"chordal\"?.5:.25,g=Math.pow(l.distanceToSquared(h),f),_=Math.pow(h.distanceToSquared(d),f),m=Math.pow(d.distanceToSquared(u),f);_guard480=_<1e-4,_guard480?_=1:_guard480,_guard481=g<1e-4,_guard481?g=_:_guard481,_guard482=m<1e-4,_guard482?m=_:_guard482,Zl.initNonuniformCatmullRom(l.x,h.x,d.x,u.x,g,_,m),$l.initNonuniformCatmullRom(l.y,h.y,d.y,u.y,g,_,m),Jl.initNonuniformCatmullRom(l.z,h.z,d.z,u.z,g,_,m);}else _guard483=this.curveType===\"catmullrom\",_guard483?(Zl.initCatmullRom(l.x,h.x,d.x,u.x,this.tension),$l.initCatmullRom(l.y,h.y,d.y,u.y,this.tension),Jl.initCatmullRom(l.z,h.z,d.z,u.z,this.tension)):_guard483;return n.set(Zl.calc(c),$l.calc(c),Jl.calc(c)),n;}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){let s=e.points[t];this.points.push(s.clone());}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this;}toJSON(){let e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){let s=this.points[t];e.points.push(s.toArray());}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e;}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){let s=e.points[t];this.points.push(new N().fromArray(s));}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this;}};function Qu(i,e,t,n,s){let r=(n-e)*.5,o=(s-t)*.5,a=i*i,c=i*a;return(2*t-2*n+r+o)*c+(-3*t+3*n-2*r-o)*a+r*i+t;}function tp(i,e){let t=1-i;return t*t*e;}function np(i,e){return 2*(1-i)*i*e;}function ip(i,e){return i*i*e;}function Ws(i,e,t,n){return tp(i,e)+np(i,t)+ip(i,n);}function sp(i,e){let t=1-i;return t*t*t*e;}function rp(i,e){let t=1-i;return 3*t*t*i*e;}function op(i,e){return 3*(1-i)*i*i*e;}function ap(i,e){return i*i*i*e;}function Xs(i,e,t,n,s){return sp(i,e)+rp(i,t)+op(i,n)+ap(i,s);}var Uo=class extends cn{constructor(e=new ze(),t=new ze(),n=new ze(),s=new ze()){super(),this.isCubicBezierCurve=!0,this.type=\"CubicBezierCurve\",this.v0=e,this.v1=t,this.v2=n,this.v3=s;}getPoint(e,t=new ze()){let n=t,s=this.v0,r=this.v1,o=this.v2,a=this.v3;return n.set(Xs(e,s.x,r.x,o.x,a.x),Xs(e,s.y,r.y,o.y,a.y)),n;}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this;}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e;}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this;}},No=class extends cn{constructor(e=new N(),t=new N(),n=new N(),s=new N()){super(),this.isCubicBezierCurve3=!0,this.type=\"CubicBezierCurve3\",this.v0=e,this.v1=t,this.v2=n,this.v3=s;}getPoint(e,t=new N()){let n=t,s=this.v0,r=this.v1,o=this.v2,a=this.v3;return n.set(Xs(e,s.x,r.x,o.x,a.x),Xs(e,s.y,r.y,o.y,a.y),Xs(e,s.z,r.z,o.z,a.z)),n;}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this;}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e;}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this;}},Fo=class extends cn{constructor(e=new ze(),t=new ze()){super(),this.isLineCurve=!0,this.type=\"LineCurve\",this.v1=e,this.v2=t;}getPoint(e,t=new ze()){let n=t;return e===1?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n;}getPointAt(e,t){return this.getPoint(e,t);}getTangent(e,t=new ze()){return t.subVectors(this.v2,this.v1).normalize();}getTangentAt(e,t){return this.getTangent(e,t);}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this;}toJSON(){let e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e;}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this;}},Oo=class extends cn{constructor(e=new N(),t=new N()){super(),this.isLineCurve3=!0,this.type=\"LineCurve3\",this.v1=e,this.v2=t;}getPoint(e,t=new N()){let n=t;return e===1?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(e).add(this.v1)),n;}getPointAt(e,t){return this.getPoint(e,t);}getTangent(e,t=new N()){return t.subVectors(this.v2,this.v1).normalize();}getTangentAt(e,t){return this.getTangent(e,t);}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this;}toJSON(){let e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e;}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this;}},Bo=class extends cn{constructor(e=new ze(),t=new ze(),n=new ze()){super(),this.isQuadraticBezierCurve=!0,this.type=\"QuadraticBezierCurve\",this.v0=e,this.v1=t,this.v2=n;}getPoint(e,t=new ze()){let n=t,s=this.v0,r=this.v1,o=this.v2;return n.set(Ws(e,s.x,r.x,o.x),Ws(e,s.y,r.y,o.y)),n;}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this;}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e;}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this;}},cr=class extends cn{constructor(e=new N(),t=new N(),n=new N()){super(),this.isQuadraticBezierCurve3=!0,this.type=\"QuadraticBezierCurve3\",this.v0=e,this.v1=t,this.v2=n;}getPoint(e,t=new N()){let n=t,s=this.v0,r=this.v1,o=this.v2;return n.set(Ws(e,s.x,r.x,o.x),Ws(e,s.y,r.y,o.y),Ws(e,s.z,r.z,o.z)),n;}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this;}toJSON(){let e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e;}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this;}},zo=class extends cn{constructor(e=[]){super(),this.isSplineCurve=!0,this.type=\"SplineCurve\",this.points=e;}getPoint(e,t=new ze()){let n=t,s=this.points,r=(s.length-1)*e,o=Math.floor(r),a=r-o,c=s[o===0?o:o-1],l=s[o],u=s[o>s.length-2?s.length-1:o+1],h=s[o>s.length-3?s.length-1:o+2];return n.set(Qu(a,c.x,l.x,u.x,h.x),Qu(a,c.y,l.y,u.y,h.y)),n;}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){let s=e.points[t];this.points.push(s.clone());}return this;}toJSON(){let e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){let s=this.points[t];e.points.push(s.toArray());}return e;}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,n=e.points.length;t<n;t++){let s=e.points[t];this.points.push(new ze().fromArray(s));}return this;}},lp=Object.freeze({__proto__:null,ArcCurve:Lo,CatmullRomCurve3:Li,CubicBezierCurve:Uo,CubicBezierCurve3:No,EllipseCurve:lr,LineCurve:Fo,LineCurve3:Oo,QuadraticBezierCurve:Bo,QuadraticBezierCurve3:cr,SplineCurve:zo});var ur=class i extends Ot{constructor(e=1,t=1,n=1,s=1){super(),this.type=\"PlaneGeometry\",this.parameters={width:e,height:t,widthSegments:n,heightSegments:s};let r=e\/2,o=t\/2,a=Math.floor(n),c=Math.floor(s),l=a+1,u=c+1,h=e\/a,d=t\/c,f=[],g=[],_=[],m=[];for(let p=0;p<u;p++){let E=p*d-o;for(let T=0;T<l;T++){let y=T*h-r;g.push(y,-E,0),_.push(0,0,1),m.push(T\/a),m.push(1-p\/c);}}for(let p=0;p<c;p++)for(let E=0;E<a;E++){let T=E+l*p,y=E+l*(p+1),R=E+1+l*(p+1),w=E+1+l*p;f.push(T,y,w),f.push(y,R,w);}this.setIndex(f),this.setAttribute(\"position\",new ft(g,3)),this.setAttribute(\"normal\",new ft(_,3)),this.setAttribute(\"uv\",new ft(m,2));}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}static fromJSON(e){return new i(e.width,e.height,e.widthSegments,e.heightSegments);}};var hr=class i extends Ot{constructor(e=1,t=32,n=16,s=0,r=Math.PI*2,o=0,a=Math.PI){super(),this.type=\"SphereGeometry\",this.parameters={radius:e,widthSegments:t,heightSegments:n,phiStart:s,phiLength:r,thetaStart:o,thetaLength:a},t=Math.max(3,Math.floor(t)),n=Math.max(2,Math.floor(n));let c=Math.min(o+a,Math.PI),l=0,u=[],h=new N(),d=new N(),f=[],g=[],_=[],m=[];for(let p=0;p<=n;p++){var _guard484,_guard485,_guard486;let E=[],T=p\/n,y=0;(_guard484=p===0,_guard484?o===0:_guard484)?y=.5\/t:(_guard486=(_guard485=p===n,_guard485?c===Math.PI:_guard485),_guard486?y=-.5\/t:_guard486);for(let R=0;R<=t;R++){let w=R\/t;h.x=-e*Math.cos(s+w*r)*Math.sin(o+T*a),h.y=e*Math.cos(o+T*a),h.z=e*Math.sin(s+w*r)*Math.sin(o+T*a),g.push(h.x,h.y,h.z),d.copy(h).normalize(),_.push(d.x,d.y,d.z),m.push(w+y,1-T),E.push(l++);}u.push(E);}for(let p=0;p<n;p++)for(let E=0;E<t;E++){var _guard487,_guard488;let T=u[p][E+1],y=u[p][E],R=u[p+1][E],w=u[p+1][E+1];_guard487=p!==0||o>0,_guard487?f.push(T,y,w):_guard487,_guard488=p!==n-1||c<Math.PI,_guard488?f.push(y,R,w):_guard488;}this.setIndex(f),this.setAttribute(\"position\",new ft(g,3)),this.setAttribute(\"normal\",new ft(_,3)),this.setAttribute(\"uv\",new ft(m,2));}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}static fromJSON(e){return new i(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength);}};var dr=class i extends Ot{constructor(e=1,t=.4,n=12,s=48,r=Math.PI*2){super(),this.type=\"TorusGeometry\",this.parameters={radius:e,tube:t,radialSegments:n,tubularSegments:s,arc:r},n=Math.floor(n),s=Math.floor(s);let o=[],a=[],c=[],l=[],u=new N(),h=new N(),d=new N();for(let f=0;f<=n;f++)for(let g=0;g<=s;g++){let _=g\/s*r,m=f\/n*Math.PI*2;h.x=(e+t*Math.cos(m))*Math.cos(_),h.y=(e+t*Math.cos(m))*Math.sin(_),h.z=t*Math.sin(m),a.push(h.x,h.y,h.z),u.x=e*Math.cos(_),u.y=e*Math.sin(_),d.subVectors(h,u).normalize(),c.push(d.x,d.y,d.z),l.push(g\/s),l.push(f\/n);}for(let f=1;f<=n;f++)for(let g=1;g<=s;g++){let _=(s+1)*f+g-1,m=(s+1)*(f-1)+g-1,p=(s+1)*(f-1)+g,E=(s+1)*f+g;o.push(_,m,E),o.push(m,p,E);}this.setIndex(o),this.setAttribute(\"position\",new ft(a,3)),this.setAttribute(\"normal\",new ft(c,3)),this.setAttribute(\"uv\",new ft(l,2));}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}static fromJSON(e){return new i(e.radius,e.tube,e.radialSegments,e.tubularSegments,e.arc);}};var ms=class i extends Ot{constructor(e=new cr(new N(-1,-1,0),new N(-1,1,0),new N(1,1,0)),t=64,n=1,s=8,r=!1){super(),this.type=\"TubeGeometry\",this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:s,closed:r};let o=e.computeFrenetFrames(t,r);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;let a=new N(),c=new N(),l=new ze(),u=new N(),h=[],d=[],f=[],g=[];_(),this.setIndex(g),this.setAttribute(\"position\",new ft(h,3)),this.setAttribute(\"normal\",new ft(d,3)),this.setAttribute(\"uv\",new ft(f,2));function _(){for(let T=0;T<t;T++)m(T);m(r===!1?t:0),E(),p();}function m(T){u=e.getPointAt(T\/t,u);let y=o.normals[T],R=o.binormals[T];for(let w=0;w<=s;w++){let P=w\/s*Math.PI*2,F=Math.sin(P),M=-Math.cos(P);c.x=M*y.x+F*R.x,c.y=M*y.y+F*R.y,c.z=M*y.z+F*R.z,c.normalize(),d.push(c.x,c.y,c.z),a.x=u.x+n*c.x,a.y=u.y+n*c.y,a.z=u.z+n*c.z,h.push(a.x,a.y,a.z);}}function p(){for(let T=1;T<=t;T++)for(let y=1;y<=s;y++){let R=(s+1)*(T-1)+(y-1),w=(s+1)*T+(y-1),P=(s+1)*T+y,F=(s+1)*(T-1)+y;g.push(R,w,F),g.push(w,P,F);}}function E(){for(let T=0;T<=t;T++)for(let y=0;y<=s;y++)l.x=T\/t,l.y=y\/s,f.push(l.x,l.y);}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this;}toJSON(){let e=super.toJSON();return e.path=this.parameters.path.toJSON(),e;}static fromJSON(e){return new i(new lp[e.path.type]().fromJSON(e.path),e.tubularSegments,e.radius,e.radialSegments,e.closed);}};var fr=class extends Yn{constructor(e){super(),this.isMeshStandardMaterial=!0,this.type=\"MeshStandardMaterial\",this.defines={STANDARD:\"\"},this.color=new $e(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new $e(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Mc,this.normalScale=new ze(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new yn(),this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.flatShading=!1,this.fog=!0,this.setValues(e);}copy(e){return super.copy(e),this.defines={STANDARD:\"\"},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this;}};var Vo=class extends Yn{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type=\"MeshDepthMaterial\",this.depthPacking=Ph,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e);}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this;}},ko=class extends Yn{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type=\"MeshDistanceMaterial\",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e);}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this;}};function go(i,e){return!i||i.constructor===e?i:typeof e.BYTES_PER_ELEMENT==\"number\"?new e(i):Array.prototype.slice.call(i);}function cp(i){var _guard489;return _guard489=ArrayBuffer.isView(i),_guard489?!(i instanceof DataView):_guard489;}var Ui=class{constructor(e,t,n,s){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new t.constructor(n),this.sampleValues=t,this.valueSize=n,this.settings=null,this.DefaultSettings_={};}evaluate(e){let t=this.parameterPositions,n=this._cachedIndex,s=t[n],r=t[n-1];e:{t:{let o;n:{i:if(!(e<s)){for(let a=n+2;;){if(s===void 0){if(e<r)break i;return n=t.length,this._cachedIndex=n,this.copySampleValue_(n-1);}if(n===a)break;if(r=s,s=t[++n],e<s)break t;}o=t.length;break n;}if(!(e>=r)){var _guard490;let a=t[1];_guard490=e<a,_guard490?(n=2,r=a):_guard490;for(let c=n-2;;){if(r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(n===c)break;if(s=r,r=t[--n-1],e>=r)break t;}o=n,n=0;break n;}break e;}for(;n<o;){let a=n+o>>>1;e<t[a]?o=a:n=a+1;}if(s=t[n],r=t[n-1],r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(s===void 0)return n=t.length,this._cachedIndex=n,this.copySampleValue_(n-1);}this._cachedIndex=n,this.intervalChanged_(n,r,s);}return this.interpolate_(n,r,e,s);}getSettings_(){return this.settings||this.DefaultSettings_;}copySampleValue_(e){let t=this.resultBuffer,n=this.sampleValues,s=this.valueSize,r=e*s;for(let o=0;o!==s;++o)t[o]=n[r+o];return t;}interpolate_(){throw new Error(\"call to abstract method\");}intervalChanged_(){}},Ho=class extends Ui{constructor(e,t,n,s){super(e,t,n,s),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Ql,endingEnd:Ql};}intervalChanged_(e,t,n){let s=this.parameterPositions,r=e-2,o=e+1,a=s[r],c=s[o];if(a===void 0)switch(this.getSettings_().endingStart){case jl:r=e,a=2*t-n;break;case ec:r=s.length-2,a=t+s[r]-s[r+1];break;default:r=e,a=n;}if(c===void 0)switch(this.getSettings_().endingEnd){case jl:o=e,c=2*n-t;break;case ec:o=1,c=n+s[1]-s[0];break;default:o=e-1,c=t;}let l=(n-t)*.5,u=this.valueSize;this._weightPrev=l\/(t-a),this._weightNext=l\/(c-n),this._offsetPrev=r*u,this._offsetNext=o*u;}interpolate_(e,t,n,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=e*a,l=c-a,u=this._offsetPrev,h=this._offsetNext,d=this._weightPrev,f=this._weightNext,g=(n-t)\/(s-t),_=g*g,m=_*g,p=-d*m+2*d*_-d*g,E=(1+d)*m+(-1.5-2*d)*_+(-.5+d)*g+1,T=(-1-f)*m+(1.5+f)*_+.5*g,y=f*m-f*_;for(let R=0;R!==a;++R)r[R]=p*o[u+R]+E*o[l+R]+T*o[c+R]+y*o[h+R];return r;}},Go=class extends Ui{constructor(e,t,n,s){super(e,t,n,s);}interpolate_(e,t,n,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=e*a,l=c-a,u=(n-t)\/(s-t),h=1-u;for(let d=0;d!==a;++d)r[d]=o[l+d]*h+o[c+d]*u;return r;}},Wo=class extends Ui{constructor(e,t,n,s){super(e,t,n,s);}interpolate_(e){return this.copySampleValue_(e-1);}},en=class{constructor(e,t,n,s){if(e===void 0)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(t===void 0||t.length===0)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+e);this.name=e,this.times=go(t,this.TimeBufferType),this.values=go(n,this.ValueBufferType),this.setInterpolation(s||this.DefaultInterpolation);}static toJSON(e){let t=e.constructor,n;if(t.toJSON!==this.toJSON)n=t.toJSON(e);else{var _guard491;n={name:e.name,times:go(e.times,Array),values:go(e.values,Array)};let s=e.getInterpolation();_guard491=s!==e.DefaultInterpolation,_guard491?n.interpolation=s:_guard491;}return n.type=e.ValueTypeName,n;}InterpolantFactoryMethodDiscrete(e){return new Wo(this.times,this.values,this.getValueSize(),e);}InterpolantFactoryMethodLinear(e){return new Go(this.times,this.values,this.getValueSize(),e);}InterpolantFactoryMethodSmooth(e){return new Ho(this.times,this.values,this.getValueSize(),e);}setInterpolation(e){let t;switch(e){case qs:t=this.InterpolantFactoryMethodDiscrete;break;case bo:t=this.InterpolantFactoryMethodLinear;break;case _o:t=this.InterpolantFactoryMethodSmooth;break;}if(t===void 0){let n=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(n);return console.warn(\"THREE.KeyframeTrack:\",n),this;}return this.createInterpolant=t,this;}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return qs;case this.InterpolantFactoryMethodLinear:return bo;case this.InterpolantFactoryMethodSmooth:return _o;}}getValueSize(){return this.values.length\/this.times.length;}shift(e){if(e!==0){let t=this.times;for(let n=0,s=t.length;n!==s;++n)t[n]+=e;}return this;}scale(e){if(e!==1){let t=this.times;for(let n=0,s=t.length;n!==s;++n)t[n]*=e;}return this;}trim(e,t){let n=this.times,s=n.length,r=0,o=s-1;for(;_guard492=r!==s,_guard492?n[r]<e:_guard492;){var _guard492;++r;}for(;_guard493=o!==-1,_guard493?n[o]>t:_guard493;){var _guard493;--o;}if(++o,r!==0||o!==s){var _guard494;_guard494=r>=o,_guard494?(o=Math.max(o,1),r=o-1):_guard494;let a=this.getValueSize();this.times=n.slice(r,o),this.values=this.values.slice(r*a,o*a);}return this;}validate(){var _guard495,_guard496,_guard499;let e=!0,t=this.getValueSize();_guard495=t-Math.floor(t)!==0,_guard495?(console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this),e=!1):_guard495;let n=this.times,s=this.values,r=n.length;_guard496=r===0,_guard496?(console.error(\"THREE.KeyframeTrack: Track is empty.\",this),e=!1):_guard496;let o=null;for(let a=0;a!==r;a++){var _guard497,_guard498;let c=n[a];if(_guard497=typeof c==\"number\",_guard497?isNaN(c):_guard497){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,a,c),e=!1;break;}if(_guard498=o!==null,_guard498?o>c:_guard498){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,a,c,o),e=!1;break;}o=c;}if(_guard499=s!==void 0,_guard499?cp(s):_guard499)for(let a=0,c=s.length;a!==c;++a){let l=s[a];if(isNaN(l)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,a,l),e=!1;break;}}return e;}optimize(){let e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),s=this.getInterpolation()===_o,r=e.length-1,o=1;for(let a=1;a<r;++a){var _guard500;let c=!1,l=e[a],u=e[a+1];if(_guard500=l!==u,_guard500?a!==1||l!==e[0]:_guard500)if(s)c=!0;else{let h=a*n,d=h-n,f=h+n;for(let g=0;g!==n;++g){let _=t[h+g];if(_!==t[d+g]||_!==t[f+g]){c=!0;break;}}}if(c){if(a!==o){e[o]=e[a];let h=a*n,d=o*n;for(let f=0;f!==n;++f)t[d+f]=t[h+f];}++o;}}if(r>0){e[o]=e[r];for(let a=r*n,c=o*n,l=0;l!==n;++l)t[c+l]=t[a+l];++o;}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*n)):(this.times=e,this.values=t),this;}clone(){let e=this.times.slice(),t=this.values.slice(),n=this.constructor,s=new n(this.name,e,t);return s.createInterpolant=this.createInterpolant,s;}};en.prototype.ValueTypeName=\"\";en.prototype.TimeBufferType=Float32Array;en.prototype.ValueBufferType=Float32Array;en.prototype.DefaultInterpolation=bo;var fi=class extends en{constructor(e,t,n){super(e,t,n);}};fi.prototype.ValueTypeName=\"bool\";fi.prototype.ValueBufferType=Array;fi.prototype.DefaultInterpolation=qs;fi.prototype.InterpolantFactoryMethodLinear=void 0;fi.prototype.InterpolantFactoryMethodSmooth=void 0;var Xo=class extends en{constructor(e,t,n,s){super(e,t,n,s);}};Xo.prototype.ValueTypeName=\"color\";var qo=class extends en{constructor(e,t,n,s){super(e,t,n,s);}};qo.prototype.ValueTypeName=\"number\";var Yo=class extends Ui{constructor(e,t,n,s){super(e,t,n,s);}interpolate_(e,t,n,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(n-t)\/(s-t),l=e*a;for(let u=l+a;l!==u;l+=4)qn.slerpFlat(r,0,o,l-a,o,l,c);return r;}},pr=class extends en{constructor(e,t,n,s){super(e,t,n,s);}InterpolantFactoryMethodLinear(e){return new Yo(this.times,this.values,this.getValueSize(),e);}};pr.prototype.ValueTypeName=\"quaternion\";pr.prototype.InterpolantFactoryMethodSmooth=void 0;var pi=class extends en{constructor(e,t,n){super(e,t,n);}};pi.prototype.ValueTypeName=\"string\";pi.prototype.ValueBufferType=Array;pi.prototype.DefaultInterpolation=qs;pi.prototype.InterpolantFactoryMethodLinear=void 0;pi.prototype.InterpolantFactoryMethodSmooth=void 0;var Zo=class extends en{constructor(e,t,n,s){super(e,t,n,s);}};Zo.prototype.ValueTypeName=\"vector\";var $o=class{constructor(e,t,n){let s=this,r=!1,o=0,a=0,c,l=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=n,this.abortController=new AbortController(),this.itemStart=function(u){var _guard501,_guard502;a++,_guard502=(_guard501=r===!1,_guard501?s.onStart!==void 0:_guard501),_guard502?s.onStart(u,o,a):_guard502,r=!0;},this.itemEnd=function(u){var _guard503,_guard504,_guard505;o++,_guard503=s.onProgress!==void 0,_guard503?s.onProgress(u,o,a):_guard503,_guard505=o===a,_guard505?(r=!1,_guard504=s.onLoad!==void 0,_guard504?s.onLoad():_guard504):_guard505;},this.itemError=function(u){var _guard506;_guard506=s.onError!==void 0,_guard506?s.onError(u):_guard506;},this.resolveURL=function(u){return c?c(u):u;},this.setURLModifier=function(u){return c=u,this;},this.addHandler=function(u,h){return l.push(u,h),this;},this.removeHandler=function(u){var _guard507;let h=l.indexOf(u);return _guard507=h!==-1,_guard507?l.splice(h,2):_guard507,this;},this.getHandler=function(u){for(let h=0,d=l.length;h<d;h+=2){var _guard508;let f=l[h],g=l[h+1];if(_guard508=f.global,_guard508?f.lastIndex=0:_guard508,f.test(u))return g;}return null;},this.abort=function(){return this.abortController.abort(),this.abortController=new AbortController(),this;};}},Xh=new $o(),Jo=class{constructor(e){this.manager=e!==void 0?e:Xh,this.crossOrigin=\"anonymous\",this.withCredentials=!1,this.path=\"\",this.resourcePath=\"\",this.requestHeader={};}load(){}loadAsync(e,t){let n=this;return new Promise(function(s,r){n.load(e,s,t,r);});}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this;}setWithCredentials(e){return this.withCredentials=e,this;}setPath(e){return this.path=e,this;}setResourcePath(e){return this.resourcePath=e,this;}setRequestHeader(e){return this.requestHeader=e,this;}abort(){return this;}};Jo.DEFAULT_MATERIAL_NAME=\"__DEFAULT\";var mr=class extends Lt{constructor(e,t=1){super(),this.isLight=!0,this.type=\"Light\",this.color=new $e(e),this.intensity=t;}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this;}toJSON(e){var _guard509,_guard510,_guard511,_guard512,_guard513,_guard514,_guard515;let t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,_guard509=this.groundColor!==void 0,_guard509?t.object.groundColor=this.groundColor.getHex():_guard509,_guard510=this.distance!==void 0,_guard510?t.object.distance=this.distance:_guard510,_guard511=this.angle!==void 0,_guard511?t.object.angle=this.angle:_guard511,_guard512=this.decay!==void 0,_guard512?t.object.decay=this.decay:_guard512,_guard513=this.penumbra!==void 0,_guard513?t.object.penumbra=this.penumbra:_guard513,_guard514=this.shadow!==void 0,_guard514?t.object.shadow=this.shadow.toJSON():_guard514,_guard515=this.target!==void 0,_guard515?t.object.target=this.target.uuid:_guard515,t;}},gr=class extends mr{constructor(e,t,n){super(e,n),this.isHemisphereLight=!0,this.type=\"HemisphereLight\",this.position.copy(Lt.DEFAULT_UP),this.updateMatrix(),this.groundColor=new $e(t);}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this;}},Kl=new gt(),ju=new N(),eh=new N(),ic=class{constructor(e){this.camera=e,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new ze(512,512),this.mapType=Mn,this.map=null,this.mapPass=null,this.matrix=new gt(),this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ds(),this._frameExtents=new ze(1,1),this._viewportCount=1,this._viewports=[new vt(0,0,1,1)];}getViewportCount(){return this._viewportCount;}getFrustum(){return this._frustum;}updateMatrices(e){let t=this.camera,n=this.matrix;ju.setFromMatrixPosition(e.matrixWorld),t.position.copy(ju),eh.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(eh),t.updateMatrixWorld(),Kl.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Kl,t.coordinateSystem,t.reversedDepth),t.reversedDepth?n.set(.5,0,0,.5,0,.5,0,.5,0,0,1,0,0,0,0,1):n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(Kl);}getViewport(e){return this._viewports[e];}getFrameExtents(){return this._frameExtents;}dispose(){var _guard516,_guard517;_guard516=this.map,_guard516?this.map.dispose():_guard516,_guard517=this.mapPass,_guard517?this.mapPass.dispose():_guard517;}copy(e){return this.camera=e.camera.clone(),this.intensity=e.intensity,this.bias=e.bias,this.radius=e.radius,this.autoUpdate=e.autoUpdate,this.needsUpdate=e.needsUpdate,this.normalBias=e.normalBias,this.blurSamples=e.blurSamples,this.mapSize.copy(e.mapSize),this;}clone(){return new this.constructor().copy(this);}toJSON(){var _guard518,_guard519,_guard520,_guard521,_guard522;let e={};return _guard518=this.intensity!==1,_guard518?e.intensity=this.intensity:_guard518,_guard519=this.bias!==0,_guard519?e.bias=this.bias:_guard519,_guard520=this.normalBias!==0,_guard520?e.normalBias=this.normalBias:_guard520,_guard521=this.radius!==1,_guard521?e.radius=this.radius:_guard521,_guard522=this.mapSize.x!==512||this.mapSize.y!==512,_guard522?e.mapSize=this.mapSize.toArray():_guard522,e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e;}};var _r=class extends nr{constructor(e=-1,t=1,n=1,s=-1,r=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type=\"OrthographicCamera\",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=s,this.near=r,this.far=o,this.updateProjectionMatrix();}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this;}setViewOffset(e,t,n,s,r,o){var _guard523;_guard523=this.view===null,_guard523?this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}:_guard523,this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=o,this.updateProjectionMatrix();}clearViewOffset(){var _guard524;_guard524=this.view!==null,_guard524?this.view.enabled=!1:_guard524,this.updateProjectionMatrix();}updateProjectionMatrix(){var _guard525;let e=(this.right-this.left)\/(2*this.zoom),t=(this.top-this.bottom)\/(2*this.zoom),n=(this.right+this.left)\/2,s=(this.top+this.bottom)\/2,r=n-e,o=n+e,a=s+t,c=s-t;if(_guard525=this.view!==null,_guard525?this.view.enabled:_guard525){let l=(this.right-this.left)\/this.view.fullWidth\/this.zoom,u=(this.top-this.bottom)\/this.view.fullHeight\/this.zoom;r+=l*this.view.offsetX,o=r+l*this.view.width,a-=u*this.view.offsetY,c=a-u*this.view.height;}this.projectionMatrix.makeOrthographic(r,o,a,c,this.near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert();}toJSON(e){var _guard526;let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,_guard526=this.view!==null,_guard526?t.object.view=Object.assign({},this.view):_guard526,t;}},sc=class extends ic{constructor(){super(new _r(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0;}},gs=class extends mr{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type=\"DirectionalLight\",this.position.copy(Lt.DEFAULT_UP),this.updateMatrix(),this.target=new Lt(),this.shadow=new sc();}dispose(){this.shadow.dispose();}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this;}};var Ko=class extends Ft{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e;}};var wc=\"\\\\[\\\\]\\\\.:\\\\\/\",up=new RegExp(\"[\"+wc+\"]\",\"g\"),Cc=\"[^\"+wc+\"]\",hp=\"[^\"+wc.replace(\"\\\\.\",\"\")+\"]\",dp=\/((?:WC+[\\\/:])*)\/.source.replace(\"WC\",Cc),fp=\/(WCOD+)?\/.source.replace(\"WCOD\",hp),pp=\/(?:\\.(WC+)(?:\\[(.+)\\])?)?\/.source.replace(\"WC\",Cc),mp=\/\\.(WC+)(?:\\[(.+)\\])?\/.source.replace(\"WC\",Cc),gp=new RegExp(\"^\"+dp+fp+pp+mp+\"$\"),_p=[\"material\",\"materials\",\"bones\",\"map\"],rc=class{constructor(e,t,n){let s=n||mt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,s);}getValue(e,t){var _guard527;this.bind();let n=this._targetGroup.nCachedObjects_,s=this._bindings[n];_guard527=s!==void 0,_guard527?s.getValue(e,t):_guard527;}setValue(e,t){let n=this._bindings;for(let s=this._targetGroup.nCachedObjects_,r=n.length;s!==r;++s)n[s].setValue(e,t);}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind();}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind();}},mt=class i{constructor(e,t,n){this.path=t,this.parsedPath=n||i.parseTrackName(t),this.node=i.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound;}static create(e,t,n){var _guard528;return(_guard528=e,_guard528?e.isAnimationObjectGroup:_guard528)?new i.Composite(e,t,n):new i(e,t,n);}static sanitizeNodeName(e){return e.replace(\/\\s\/g,\"_\").replace(up,\"\");}static parseTrackName(e){var _guard529,_guard530;let t=gp.exec(e);if(t===null)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},s=(_guard529=n.nodeName,_guard529?n.nodeName.lastIndexOf(\".\"):_guard529);if(_guard530=s!==void 0,_guard530?s!==-1:_guard530){var _guard531;let r=n.nodeName.substring(s+1);_guard531=_p.indexOf(r)!==-1,_guard531?(n.nodeName=n.nodeName.substring(0,s),n.objectName=r):_guard531;}if(n.propertyName===null||n.propertyName.length===0)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+e);return n;}static findNode(e,t){if(t===void 0||t===\"\"||t===\".\"||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(n!==void 0)return n;}if(e.children){let n=function(r){for(let o=0;o<r.length;o++){let a=r[o];if(a.name===t||a.uuid===t)return a;let c=n(a.children);if(c)return c;}return null;},s=n(e.children);if(s)return s;}return null;}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName];}_getValue_array(e,t){let n=this.resolvedProperty;for(let s=0,r=n.length;s!==r;++s)e[t++]=n[s];}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex];}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t);}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t];}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0;}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0;}_setValue_array(e,t){let n=this.resolvedProperty;for(let s=0,r=n.length;s!==r;++s)n[s]=e[t++];}_setValue_array_setNeedsUpdate(e,t){let n=this.resolvedProperty;for(let s=0,r=n.length;s!==r;++s)n[s]=e[t++];this.targetObject.needsUpdate=!0;}_setValue_array_setMatrixWorldNeedsUpdate(e,t){let n=this.resolvedProperty;for(let s=0,r=n.length;s!==r;++s)n[s]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0;}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t];}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0;}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0;}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t);}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0;}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0;}_getValue_unbound(e,t){this.bind(),this.getValue(e,t);}_setValue_unbound(e,t){this.bind(),this.setValue(e,t);}bind(){var _guard532,_guard534;let e=this.node,t=this.parsedPath,n=t.objectName,s=t.propertyName,r=t.propertyIndex;if(e||(e=i.findNode(this.rootNode,t.nodeName),this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.warn(\"THREE.PropertyBinding: No target node found for track: \"+this.path+\".\");return;}if(n){let l=t.objectIndex;switch(n){case\"materials\":if(!e.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return;}if(!e.material.materials){console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);return;}e=e.material.materials;break;case\"bones\":if(!e.skeleton){console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);return;}e=e.skeleton.bones;for(let u=0;u<e.length;u++)if(e[u].name===l){l=u;break;}break;case\"map\":if(\"map\"in e){e=e.map;break;}if(!e.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return;}if(!e.material.map){console.error(\"THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.\",this);return;}e=e.material.map;break;default:if(e[n]===void 0){console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);return;}e=e[n];}if(l!==void 0){if(e[l]===void 0){console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,e);return;}e=e[l];}}let o=e[s];if(o===void 0){let l=t.nodeName;console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+l+\".\"+s+\" but it wasn't found.\",e);return;}let a=this.Versioning.None;this.targetObject=e,e.isMaterial===!0?a=this.Versioning.NeedsUpdate:(_guard532=e.isObject3D===!0,_guard532?a=this.Versioning.MatrixWorldNeedsUpdate:_guard532);let c=this.BindingType.Direct;if(r!==void 0){if(s===\"morphTargetInfluences\"){var _guard533;if(!e.geometry){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);return;}if(!e.geometry.morphAttributes){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);return;}_guard533=e.morphTargetDictionary[r]!==void 0,_guard533?r=e.morphTargetDictionary[r]:_guard533;}c=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=r;}else(_guard534=o.fromArray!==void 0,_guard534?o.toArray!==void 0:_guard534)?(c=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(c=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=s;this.getValue=this.GetterByBindingType[c],this.setValue=this.SetterByBindingTypeAndVersioning[c][a];}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound;}};mt.Composite=rc;mt.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};mt.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};mt.prototype.GetterByBindingType=[mt.prototype._getValue_direct,mt.prototype._getValue_array,mt.prototype._getValue_arrayElement,mt.prototype._getValue_toArray];mt.prototype.SetterByBindingTypeAndVersioning=[[mt.prototype._setValue_direct,mt.prototype._setValue_direct_setNeedsUpdate,mt.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[mt.prototype._setValue_array,mt.prototype._setValue_array_setNeedsUpdate,mt.prototype._setValue_array_setMatrixWorldNeedsUpdate],[mt.prototype._setValue_arrayElement,mt.prototype._setValue_arrayElement_setNeedsUpdate,mt.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[mt.prototype._setValue_fromArray,mt.prototype._setValue_fromArray_setNeedsUpdate,mt.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var yx=new Float32Array(1);function Rc(i,e,t,n){let s=xp(n);switch(t){case _c:return i*e;case yc:return i*e\/s.components*s.byteLength;case da:return i*e\/s.components*s.byteLength;case vc:return i*e*2\/s.components*s.byteLength;case fa:return i*e*2\/s.components*s.byteLength;case xc:return i*e*3\/s.components*s.byteLength;case un:return i*e*4\/s.components*s.byteLength;case pa:return i*e*4\/s.components*s.byteLength;case vr:case Mr:return Math.floor((i+3)\/4)*Math.floor((e+3)\/4)*8;case Sr:case br:return Math.floor((i+3)\/4)*Math.floor((e+3)\/4)*16;case ga:case xa:return Math.max(i,16)*Math.max(e,8)\/4;case ma:case _a:return Math.max(i,8)*Math.max(e,8)\/2;case ya:case va:return Math.floor((i+3)\/4)*Math.floor((e+3)\/4)*8;case Ma:return Math.floor((i+3)\/4)*Math.floor((e+3)\/4)*16;case Sa:return Math.floor((i+3)\/4)*Math.floor((e+3)\/4)*16;case ba:return Math.floor((i+4)\/5)*Math.floor((e+3)\/4)*16;case Ta:return Math.floor((i+4)\/5)*Math.floor((e+4)\/5)*16;case Ea:return Math.floor((i+5)\/6)*Math.floor((e+4)\/5)*16;case Aa:return Math.floor((i+5)\/6)*Math.floor((e+5)\/6)*16;case wa:return Math.floor((i+7)\/8)*Math.floor((e+4)\/5)*16;case Ca:return Math.floor((i+7)\/8)*Math.floor((e+5)\/6)*16;case Ra:return Math.floor((i+7)\/8)*Math.floor((e+7)\/8)*16;case Ia:return Math.floor((i+9)\/10)*Math.floor((e+4)\/5)*16;case Pa:return Math.floor((i+9)\/10)*Math.floor((e+5)\/6)*16;case Da:return Math.floor((i+9)\/10)*Math.floor((e+7)\/8)*16;case La:return Math.floor((i+9)\/10)*Math.floor((e+9)\/10)*16;case Ua:return Math.floor((i+11)\/12)*Math.floor((e+9)\/10)*16;case Na:return Math.floor((i+11)\/12)*Math.floor((e+11)\/12)*16;case Fa:case Oa:case Ba:return Math.ceil(i\/4)*Math.ceil(e\/4)*16;case za:case Va:return Math.ceil(i\/4)*Math.ceil(e\/4)*8;case ka:case Ha:return Math.ceil(i\/4)*Math.ceil(e\/4)*16;}throw new Error(`Unable to determine texture byte length for ${t} format.`);}function xp(i){switch(i){case Mn:case fc:return{byteLength:1,components:1};case _s:case pc:case xs:return{byteLength:2,components:1};case ua:case ha:return{byteLength:2,components:4};case gi:case ca:case Cn:return{byteLength:4,components:1};case mc:case gc:return{byteLength:4,components:3};}throw new Error(`Unknown texture type ${i}.`);}_guard535=typeof __THREE_DEVTOOLS__<\"u\",_guard535?__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:\"180\"}})):_guard535;_guard536=typeof window<\"u\",_guard536?window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=\"180\":_guard536;\/**\n * @license\n * Copyright 2010-2025 Three.js Authors\n * SPDX-License-Identifier: MIT\n *\/function md(){let i=null,e=!1,t=null,n=null;function s(r,o){t(r,o),n=i.requestAnimationFrame(s);}return{start:function(){var _guard537,_guard538;_guard538=(_guard537=e!==!0,_guard537?t!==null:_guard537),_guard538?(n=i.requestAnimationFrame(s),e=!0):_guard538;},stop:function(){i.cancelAnimationFrame(n),e=!1;},setAnimationLoop:function(r){t=r;},setContext:function(r){i=r;}};}function Ap(i){let e=new WeakMap();function t(a,c){var _guard539;let l=a.array,u=a.usage,h=l.byteLength,d=i.createBuffer();i.bindBuffer(c,d),i.bufferData(c,l,u),a.onUploadCallback();let f;if(l instanceof Float32Array)f=i.FLOAT;else if(_guard539=typeof Float16Array<\"u\",_guard539?l instanceof Float16Array:_guard539)f=i.HALF_FLOAT;else if(l instanceof Uint16Array)a.isFloat16BufferAttribute?f=i.HALF_FLOAT:f=i.UNSIGNED_SHORT;else if(l instanceof Int16Array)f=i.SHORT;else if(l instanceof Uint32Array)f=i.UNSIGNED_INT;else if(l instanceof Int32Array)f=i.INT;else if(l instanceof Int8Array)f=i.BYTE;else if(l instanceof Uint8Array)f=i.UNSIGNED_BYTE;else if(l instanceof Uint8ClampedArray)f=i.UNSIGNED_BYTE;else throw new Error(\"THREE.WebGLAttributes: Unsupported buffer data format: \"+l);return{buffer:d,type:f,bytesPerElement:l.BYTES_PER_ELEMENT,version:a.version,size:h};}function n(a,c,l){let u=c.array,h=c.updateRanges;if(i.bindBuffer(l,a),h.length===0)i.bufferSubData(l,0,u);else{h.sort((f,g)=>f.start-g.start);let d=0;for(let f=1;f<h.length;f++){let g=h[d],_=h[f];_.start<=g.start+g.count+1?g.count=Math.max(g.count,_.start+_.count-g.start):(++d,h[d]=_);}h.length=d+1;for(let f=0,g=h.length;f<g;f++){let _=h[f];i.bufferSubData(l,_.start*u.BYTES_PER_ELEMENT,u,_.start,_.count);}c.clearUpdateRanges();}c.onUploadCallback();}function s(a){var _guard540;return _guard540=a.isInterleavedBufferAttribute,_guard540?a=a.data:_guard540,e.get(a);}function r(a){var _guard541,_guard542;_guard541=a.isInterleavedBufferAttribute,_guard541?a=a.data:_guard541;let c=e.get(a);_guard542=c,_guard542?(i.deleteBuffer(c.buffer),e.delete(a)):_guard542;}function o(a,c){var _guard543;if(_guard543=a.isInterleavedBufferAttribute,_guard543?a=a.data:_guard543,a.isGLBufferAttribute){var _guard544;let u=e.get(a);_guard544=!u||u.version<a.version,_guard544?e.set(a,{buffer:a.buffer,type:a.type,bytesPerElement:a.elementSize,version:a.version}):_guard544;return;}let l=e.get(a);if(l===void 0)e.set(a,t(a,c));else if(l.version<a.version){if(l.size!==a.array.byteLength)throw new Error(\"THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.\");n(l.buffer,a,c),l.version=a.version;}}return{get:s,remove:r,update:o};}var wp=`#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif`,Cp=`#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 \/ ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x \/ ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) \/ ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) \/ ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif`,Rp=`#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif`,Ip=`#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Pp=`#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif`,Dp=`#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif`,Lp=`#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) \\x26\\x26 defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif`,Up=`#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif`,Np=`#ifdef USE_BATCHING\n\t#if ! defined( GL_ANGLE_multi_draw )\n\t#define gl_DrawID _gl_DrawID\n\tuniform int _gl_DrawID;\n\t#endif\n\tuniform highp sampler2D batchingTexture;\n\tuniform highp usampler2D batchingIdTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j \/ size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n\tfloat getIndirectIndex( const in int i ) {\n\t\tint size = textureSize( batchingIdTexture, 0 ).x;\n\t\tint x = i % size;\n\t\tint y = i \/ size;\n\t\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n\t}\n#endif\n#ifdef USE_BATCHING_COLOR\n\tuniform sampler2D batchingColorTexture;\n\tvec3 getBatchingColor( const in float i ) {\n\t\tint size = textureSize( batchingColorTexture, 0 ).x;\n\t\tint j = int( i );\n\t\tint x = j % size;\n\t\tint y = j \/ size;\n\t\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n\t}\n#endif`,Fp=`#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif`,Op=`vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif`,Bp=`vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif`,zp=`float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} \/\/ validated`,Vp=`#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660,  0.0556434,\n\t\t-1.5371385,  1.8760108, -0.2040259,\n\t\t-0.4985314,  0.0415560,  1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) \/ ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) \/ ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) \/ ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz \/= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR \/ iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 \/ ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif`,kp=`#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif`,Hp=`#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) \/ 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) \/ 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) \\x26\\x26 clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif`,Gp=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,Wp=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,Xp=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,qp=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,Yp=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,Zp=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvarying vec3 vColor;\n#endif`,$p=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n\tvColor.xyz *= batchingColor.xyz;\n#endif`,Jp=`#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v \/ maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} \/\/ validated`,Kp=`#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) \/ abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) \/ abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) \/ abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) \/ abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) \/ abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) \/ abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) \/ ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) \/ ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) \/ ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) \/ ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif`,Qp=`vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal \/= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal \/= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif`,jp=`#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif`,em=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif`,tm=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\n\t\temissiveColor = sRGBTransferEOTF( emissiveColor );\n\t#endif\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,nm=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,im=\"gl_FragColor = linearToOutputTexel( gl_FragColor );\",sm=`vec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferEOTF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}`,rm=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif`,om=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif`,am=`#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif`,lm=`#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif`,cm=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif`,um=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,hm=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,dm=`#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif`,fm=`#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif`,pm=`#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}`,mm=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,gm=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,_m=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert`,xm=`uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tfloat distanceFalloff = 1.0 \/ max( pow( lightDistance, decayExponent ), 0.01 );\n\tif ( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance \/ cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif`,ym=`#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif`,vm=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,Mm=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon`,Sm=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,bm=`varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong`,Tm=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) \/ ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n\tmaterial.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV \/= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif`,Em=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\tfloat dispersion;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n    float x2 = x * x;\n    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n    return ( f - vec3( f90 ) * x5 ) \/ ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 \/ max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 \/ pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 \/ ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 \/ v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) \/ LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 \/ LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) \/ ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a \/ b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 \/ alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) \/ ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 \/ ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg \/ ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(    0, 1,    0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}`,Am=`\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) \\x26\\x26 defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) \\x26\\x26 NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) \\x26\\x26 ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible \\x26\\x26 receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) \\x26\\x26 defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) \\x26\\x26 NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz \/ vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) \\x26\\x26 ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible \\x26\\x26 receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) \\x26\\x26 defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) \\x26\\x26 NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) \\x26\\x26 ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible \\x26\\x26 receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) \\x26\\x26 defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif`,wm=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) \\x26\\x26 defined( STANDARD ) \\x26\\x26 defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) \\x26\\x26 defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,Cm=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif`,Rm=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,Im=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Pm=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Dm=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif`,Lm=`#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif`,Um=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Nm=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif`,Fm=`#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Om=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,Bm=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,zm=`#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif`,Vm=`#if defined( USE_MORPHCOLORS )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif`,km=`#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif`,Hm=`#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t#endif\n\tuniform sampler2DArray morphTargetsTexture;\n\tuniform ivec2 morphTargetsTextureSize;\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\tint y = texelIndex \/ morphTargetsTextureSize.x;\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t}\n#endif`,Gm=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif`,Wm=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) \\x26\\x26 ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) \\x26\\x26 ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;`,Xm=`#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,qm=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Ym=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Zm=`#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif`,$m=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) \\x26\\x26 ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif`,Jm=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif`,Km=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif`,Qm=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif`,jm=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,eg=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,tg=`vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. \/ 255.;const float UnpackDownscale = 255. \/ 256.;const float ShiftRight8 = 1. \/ 256.;\nconst float Inv255 = 1. \/ 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 \/ PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale \/ PackFactors.rg, 1.0 \/ PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale \/ PackFactors.rgb, 1.0 \/ PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec4( 0., 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec4( 1., 1., 1., 1. );\n\tfloat vuf;\n\tfloat af = modf( v * PackFactors.a, vuf );\n\tfloat bf = modf( vuf * ShiftRight8, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec3( 0., 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec3( 1., 1., 1. );\n\tfloat vuf;\n\tfloat bf = modf( v * PackFactors.b, vuf );\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\n\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n\tif( v <= 0.0 )\n\t\treturn vec2( 0., 0. );\n\tif( v >= 1.0 )\n\t\treturn vec2( 1., 1. );\n\tfloat vuf;\n\tfloat gf = modf( v * 256., vuf );\n\treturn vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n\treturn dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y \/ 255.0, r.y, r.z - r.w \/ 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n\treturn vec2( v.x + ( v.y \/ 255.0 ), v.z + ( v.w \/ 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) \/ ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) \/ ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) \/ ( ( far - near ) * depth - far );\n}`,ng=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,ig=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,sg=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,rg=`#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 \/ 255.0, -0.25 \/ 255.0, 0.25 \/ 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif`,og=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,ag=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,lg=`#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\tfloat depth = unpackRGBAToDepth( texture2D( depths, uv ) );\n\t\t#ifdef USE_REVERSED_DEPTH_BUFFER\n\t\t\treturn step( depth, compare );\n\t\t#else\n\t\t\treturn step( compare, depth );\n\t\t#endif\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow( sampler2D shadow, vec2 uv, float compare ) {\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\t#ifdef USE_REVERSED_DEPTH_BUFFER\n\t\t\tfloat hard_shadow = step( distribution.x, compare );\n\t\t#else\n\t\t\tfloat hard_shadow = step( compare, distribution.x );\n\t\t#endif\n\t\tif ( hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance \/ (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) \/ ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz \/= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 \\x26\\x26 shadowCoord.x <= 1.0 \\x26\\x26 shadowCoord.y >= 0.0 \\x26\\x26 shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum \\x26\\x26 shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) \/ shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 \/ 2.0;\n\t\t\tfloat dy2 = dy0 \/ 2.0;\n\t\t\tfloat dx3 = dx1 \/ 2.0;\n\t\t\tfloat dy3 = dy1 \/ 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 \/ 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) \/ shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t  f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 \/ 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 \/ max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 \\x26\\x26 lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) \/ ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) \/ ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 \/ 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n#endif`,cg=`#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif`,ug=`#if ( defined( USE_SHADOWMAP ) \\x26\\x26 ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) \\x26\\x26 UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif`,hg=`float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}`,dg=`#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif`,fg=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j \/ size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif`,pg=`#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif`,mg=`#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif`,gg=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,_g=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,xg=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,yg=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color \/ ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) \/ ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a \/ b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(  1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,  1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,  1.07602 )\n\t);\n\tcolor *= toneMappingExposure \/ 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) \/ ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d \/ ( peak + d - StartCompression );\n\tcolor *= newPeak \/ peak;\n\tfloat g = 1. - 1. \/ ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,vg=`#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif`,Mg=`#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 \/ 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 \/ 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 \/ 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 \/ 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) \/ ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) \/ ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 \/ fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 \/ cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 \/ ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) \/ attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec4 transmittedLight;\n\t\tvec3 transmittance;\n\t\t#ifdef USE_DISPERSION\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\t\tvec2 refractionCoords = ndcPos.xy \/ ndcPos.w;\n\t\t\t\trefractionCoords += 1.0;\n\t\t\t\trefractionCoords \/= 2.0;\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n\t\t\t}\n\t\t\ttransmittedLight.a \/= 3.0;\n\t\t#else\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\tvec2 refractionCoords = ndcPos.xy \/ ndcPos.w;\n\t\t\trefractionCoords += 1.0;\n\t\t\trefractionCoords \/= 2.0;\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\t#endif\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) \/ 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif`,Sg=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif`,bg=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif`,Tg=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif`,Eg=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,Ag=`varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}`,wg=`uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}`,Cg=`varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}`,Rg=`#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}`,Ig=`varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}`,Pg=`uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}`,Dg=`#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}`,Lg=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\t#ifdef USE_REVERSED_DEPTH_BUFFER\n\t\tfloat fragCoordZ = vHighPrecisionZW[ 0 ] \/ vHighPrecisionZW[ 1 ];\n\t#else\n\t\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] \/ vHighPrecisionZW[ 1 ] + 0.5;\n\t#endif\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#elif DEPTH_PACKING == 3202\n\t\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n\t#elif DEPTH_PACKING == 3203\n\t\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n\t#endif\n}`,Ug=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}`,Ng=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) \/ ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,Fg=`varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}`,Og=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}`,Bg=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}`,zg=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}`,Vg=`#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}`,kg=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}`,Hg=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}`,Gg=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}`,Wg=`#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}`,Xg=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}`,qg=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,Yg=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,Zg=`#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}`,$g=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}`,Jg=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,Kg=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n\tuniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}`,Qg=`#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}`,jg=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}`,e_=`uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale \/ - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}`,t_=`uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}`,n_=`#include <common>\n#include <batching_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}`,i_=`uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}`,s_=`uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix[ 3 ];\n\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}`,r_=`uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}`,Qe={alphahash_fragment:wp,alphahash_pars_fragment:Cp,alphamap_fragment:Rp,alphamap_pars_fragment:Ip,alphatest_fragment:Pp,alphatest_pars_fragment:Dp,aomap_fragment:Lp,aomap_pars_fragment:Up,batching_pars_vertex:Np,batching_vertex:Fp,begin_vertex:Op,beginnormal_vertex:Bp,bsdfs:zp,iridescence_fragment:Vp,bumpmap_pars_fragment:kp,clipping_planes_fragment:Hp,clipping_planes_pars_fragment:Gp,clipping_planes_pars_vertex:Wp,clipping_planes_vertex:Xp,color_fragment:qp,color_pars_fragment:Yp,color_pars_vertex:Zp,color_vertex:$p,common:Jp,cube_uv_reflection_fragment:Kp,defaultnormal_vertex:Qp,displacementmap_pars_vertex:jp,displacementmap_vertex:em,emissivemap_fragment:tm,emissivemap_pars_fragment:nm,colorspace_fragment:im,colorspace_pars_fragment:sm,envmap_fragment:rm,envmap_common_pars_fragment:om,envmap_pars_fragment:am,envmap_pars_vertex:lm,envmap_physical_pars_fragment:ym,envmap_vertex:cm,fog_vertex:um,fog_pars_vertex:hm,fog_fragment:dm,fog_pars_fragment:fm,gradientmap_pars_fragment:pm,lightmap_pars_fragment:mm,lights_lambert_fragment:gm,lights_lambert_pars_fragment:_m,lights_pars_begin:xm,lights_toon_fragment:vm,lights_toon_pars_fragment:Mm,lights_phong_fragment:Sm,lights_phong_pars_fragment:bm,lights_physical_fragment:Tm,lights_physical_pars_fragment:Em,lights_fragment_begin:Am,lights_fragment_maps:wm,lights_fragment_end:Cm,logdepthbuf_fragment:Rm,logdepthbuf_pars_fragment:Im,logdepthbuf_pars_vertex:Pm,logdepthbuf_vertex:Dm,map_fragment:Lm,map_pars_fragment:Um,map_particle_fragment:Nm,map_particle_pars_fragment:Fm,metalnessmap_fragment:Om,metalnessmap_pars_fragment:Bm,morphinstance_vertex:zm,morphcolor_vertex:Vm,morphnormal_vertex:km,morphtarget_pars_vertex:Hm,morphtarget_vertex:Gm,normal_fragment_begin:Wm,normal_fragment_maps:Xm,normal_pars_fragment:qm,normal_pars_vertex:Ym,normal_vertex:Zm,normalmap_pars_fragment:$m,clearcoat_normal_fragment_begin:Jm,clearcoat_normal_fragment_maps:Km,clearcoat_pars_fragment:Qm,iridescence_pars_fragment:jm,opaque_fragment:eg,packing:tg,premultiplied_alpha_fragment:ng,project_vertex:ig,dithering_fragment:sg,dithering_pars_fragment:rg,roughnessmap_fragment:og,roughnessmap_pars_fragment:ag,shadowmap_pars_fragment:lg,shadowmap_pars_vertex:cg,shadowmap_vertex:ug,shadowmask_pars_fragment:hg,skinbase_vertex:dg,skinning_pars_vertex:fg,skinning_vertex:pg,skinnormal_vertex:mg,specularmap_fragment:gg,specularmap_pars_fragment:_g,tonemapping_fragment:xg,tonemapping_pars_fragment:yg,transmission_fragment:vg,transmission_pars_fragment:Mg,uv_pars_fragment:Sg,uv_pars_vertex:bg,uv_vertex:Tg,worldpos_vertex:Eg,background_vert:Ag,background_frag:wg,backgroundCube_vert:Cg,backgroundCube_frag:Rg,cube_vert:Ig,cube_frag:Pg,depth_vert:Dg,depth_frag:Lg,distanceRGBA_vert:Ug,distanceRGBA_frag:Ng,equirect_vert:Fg,equirect_frag:Og,linedashed_vert:Bg,linedashed_frag:zg,meshbasic_vert:Vg,meshbasic_frag:kg,meshlambert_vert:Hg,meshlambert_frag:Gg,meshmatcap_vert:Wg,meshmatcap_frag:Xg,meshnormal_vert:qg,meshnormal_frag:Yg,meshphong_vert:Zg,meshphong_frag:$g,meshphysical_vert:Jg,meshphysical_frag:Kg,meshtoon_vert:Qg,meshtoon_frag:jg,points_vert:e_,points_frag:t_,shadow_vert:n_,shadow_frag:i_,sprite_vert:s_,sprite_frag:r_},Te={common:{diffuse:{value:new $e(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ye()},alphaMap:{value:null},alphaMapTransform:{value:new Ye()},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ye()}},envmap:{envMap:{value:null},envMapRotation:{value:new Ye()},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ye()}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ye()}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ye()},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ye()},normalScale:{value:new ze(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ye()},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ye()}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ye()}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ye()}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new $e(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new $e(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ye()},alphaTest:{value:0},uvTransform:{value:new Ye()}},sprite:{diffuse:{value:new $e(16777215)},opacity:{value:1},center:{value:new ze(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ye()},alphaMap:{value:null},alphaMapTransform:{value:new Ye()},alphaTest:{value:0}}},Rn={basic:{uniforms:Bt([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.fog]),vertexShader:Qe.meshbasic_vert,fragmentShader:Qe.meshbasic_frag},lambert:{uniforms:Bt([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,Te.lights,{emissive:{value:new $e(0)}}]),vertexShader:Qe.meshlambert_vert,fragmentShader:Qe.meshlambert_frag},phong:{uniforms:Bt([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,Te.lights,{emissive:{value:new $e(0)},specular:{value:new $e(1118481)},shininess:{value:30}}]),vertexShader:Qe.meshphong_vert,fragmentShader:Qe.meshphong_frag},standard:{uniforms:Bt([Te.common,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.roughnessmap,Te.metalnessmap,Te.fog,Te.lights,{emissive:{value:new $e(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag},toon:{uniforms:Bt([Te.common,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.gradientmap,Te.fog,Te.lights,{emissive:{value:new $e(0)}}]),vertexShader:Qe.meshtoon_vert,fragmentShader:Qe.meshtoon_frag},matcap:{uniforms:Bt([Te.common,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,{matcap:{value:null}}]),vertexShader:Qe.meshmatcap_vert,fragmentShader:Qe.meshmatcap_frag},points:{uniforms:Bt([Te.points,Te.fog]),vertexShader:Qe.points_vert,fragmentShader:Qe.points_frag},dashed:{uniforms:Bt([Te.common,Te.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Qe.linedashed_vert,fragmentShader:Qe.linedashed_frag},depth:{uniforms:Bt([Te.common,Te.displacementmap]),vertexShader:Qe.depth_vert,fragmentShader:Qe.depth_frag},normal:{uniforms:Bt([Te.common,Te.bumpmap,Te.normalmap,Te.displacementmap,{opacity:{value:1}}]),vertexShader:Qe.meshnormal_vert,fragmentShader:Qe.meshnormal_frag},sprite:{uniforms:Bt([Te.sprite,Te.fog]),vertexShader:Qe.sprite_vert,fragmentShader:Qe.sprite_frag},background:{uniforms:{uvTransform:{value:new Ye()},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Qe.background_vert,fragmentShader:Qe.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ye()}},vertexShader:Qe.backgroundCube_vert,fragmentShader:Qe.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Qe.cube_vert,fragmentShader:Qe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Qe.equirect_vert,fragmentShader:Qe.equirect_frag},distanceRGBA:{uniforms:Bt([Te.common,Te.displacementmap,{referencePosition:{value:new N()},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Qe.distanceRGBA_vert,fragmentShader:Qe.distanceRGBA_frag},shadow:{uniforms:Bt([Te.lights,Te.fog,{color:{value:new $e(0)},opacity:{value:1}}]),vertexShader:Qe.shadow_vert,fragmentShader:Qe.shadow_frag}};Rn.physical={uniforms:Bt([Rn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ye()},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ye()},clearcoatNormalScale:{value:new ze(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ye()},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ye()},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ye()},sheen:{value:0},sheenColor:{value:new $e(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ye()},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ye()},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ye()},transmissionSamplerSize:{value:new ze()},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ye()},attenuationDistance:{value:0},attenuationColor:{value:new $e(0)},specularColor:{value:new $e(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ye()},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ye()},anisotropyVector:{value:new ze()},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ye()}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag};var Ga={r:0,b:0,g:0},Bi=new yn(),o_=new gt();function a_(i,e,t,n,s,r,o){let a=new $e(0),c=r===!0?0:1,l,u,h=null,d=0,f=null;function g(T){var _guard545,_guard546;let y=T.isScene===!0?T.background:null;return _guard546=(_guard545=y,_guard545?y.isTexture:_guard545),_guard546?y=(T.backgroundBlurriness>0?t:e).get(y):_guard546,y;}function _(T){var _guard547,_guard548,_guard549,_guard550;let y=!1,R=g(T);R===null?p(a,c):(_guard548=(_guard547=R,_guard547?R.isColor:_guard547),_guard548?(p(R,1),y=!0):_guard548);let w=i.xr.getEnvironmentBlendMode();w===\"additive\"?n.buffers.color.setClear(0,0,0,1,o):(_guard549=w===\"alpha-blend\",_guard549?n.buffers.color.setClear(0,0,0,0,o):_guard549),_guard550=i.autoClear||y,_guard550?(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil)):_guard550;}function m(T,y){var _guard551,_guard552,_guard553,_guard554,_guard555,_guard556,_guard557,_guard558,_guard559,_guard560,_guard561;let R=g(y);(_guard551=R,_guard551?R.isCubeTexture||R.mapping===xr:_guard551)?(_guard552=u===void 0,_guard552?(u=new Ht(new ln(1,1,1),new vn({name:\"BackgroundCubeMaterial\",uniforms:Oi(Rn.backgroundCube.uniforms),vertexShader:Rn.backgroundCube.vertexShader,fragmentShader:Rn.backgroundCube.fragmentShader,side:Gt,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),u.geometry.deleteAttribute(\"normal\"),u.geometry.deleteAttribute(\"uv\"),u.onBeforeRender=function(w,P,F){this.matrixWorld.copyPosition(F.matrixWorld);},Object.defineProperty(u.material,\"envMap\",{get:function(){return this.uniforms.envMap.value;}}),s.update(u)):_guard552,Bi.copy(y.backgroundRotation),Bi.x*=-1,Bi.y*=-1,Bi.z*=-1,_guard554=(_guard553=R.isCubeTexture,_guard553?R.isRenderTargetTexture===!1:_guard553),_guard554?(Bi.y*=-1,Bi.z*=-1):_guard554,u.material.uniforms.envMap.value=R,u.material.uniforms.flipEnvMap.value=(_guard555=R.isCubeTexture,_guard555?R.isRenderTargetTexture===!1:_guard555)?-1:1,u.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,u.material.uniforms.backgroundRotation.value.setFromMatrix4(o_.makeRotationFromEuler(Bi)),u.material.toneMapped=rt.getTransfer(R.colorSpace)!==ut,_guard556=h!==R||d!==R.version||f!==i.toneMapping,_guard556?(u.material.needsUpdate=!0,h=R,d=R.version,f=i.toneMapping):_guard556,u.layers.enableAll(),T.unshift(u,u.geometry,u.material,0,0,null)):(_guard561=(_guard557=R,_guard557?R.isTexture:_guard557),_guard561?(_guard558=l===void 0,_guard558?(l=new Ht(new ur(2,2),new vn({name:\"BackgroundMaterial\",uniforms:Oi(Rn.background.uniforms),vertexShader:Rn.background.vertexShader,fragmentShader:Rn.background.fragmentShader,side:Wn,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),l.geometry.deleteAttribute(\"normal\"),Object.defineProperty(l.material,\"map\",{get:function(){return this.uniforms.t2D.value;}}),s.update(l)):_guard558,l.material.uniforms.t2D.value=R,l.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,l.material.toneMapped=rt.getTransfer(R.colorSpace)!==ut,_guard559=R.matrixAutoUpdate===!0,_guard559?R.updateMatrix():_guard559,l.material.uniforms.uvTransform.value.copy(R.matrix),_guard560=h!==R||d!==R.version||f!==i.toneMapping,_guard560?(l.material.needsUpdate=!0,h=R,d=R.version,f=i.toneMapping):_guard560,l.layers.enableAll(),T.unshift(l,l.geometry,l.material,0,0,null)):_guard561);}function p(T,y){T.getRGB(Ga,Ec(i)),n.buffers.color.setClear(Ga.r,Ga.g,Ga.b,y,o);}function E(){var _guard562,_guard563;_guard562=u!==void 0,_guard562?(u.geometry.dispose(),u.material.dispose(),u=void 0):_guard562,_guard563=l!==void 0,_guard563?(l.geometry.dispose(),l.material.dispose(),l=void 0):_guard563;}return{getClearColor:function(){return a;},setClearColor:function(T,y=1){a.set(T),c=y,p(a,c);},getClearAlpha:function(){return c;},setClearAlpha:function(T){c=T,p(a,c);},render:_,addToRenderList:m,dispose:E};}function l_(i,e){let t=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},s=d(null),r=s,o=!1;function a(S,L,z,$,Q){var _guard564,_guard565,_guard566,_guard567,_guard568;let O=!1,W=h($,z,L);_guard564=r!==W,_guard564?(r=W,l(r.object)):_guard564,O=f(S,$,z,Q),_guard565=O,_guard565?g(S,$,z,Q):_guard565,_guard566=Q!==null,_guard566?e.update(Q,i.ELEMENT_ARRAY_BUFFER):_guard566,_guard568=O||o,_guard568?(o=!1,y(S,L,z,$),_guard567=Q!==null,_guard567?i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.get(Q).buffer):_guard567):_guard568;}function c(){return i.createVertexArray();}function l(S){return i.bindVertexArray(S);}function u(S){return i.deleteVertexArray(S);}function h(S,L,z){var _guard569,_guard570,_guard571;let $=z.wireframe===!0,Q=n[S.id];_guard569=Q===void 0,_guard569?(Q={},n[S.id]=Q):_guard569;let O=Q[L.id];_guard570=O===void 0,_guard570?(O={},Q[L.id]=O):_guard570;let W=O[$];return _guard571=W===void 0,_guard571?(W=d(c()),O[$]=W):_guard571,W;}function d(S){let L=[],z=[],$=[];for(let Q=0;Q<t;Q++)L[Q]=0,z[Q]=0,$[Q]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:L,enabledAttributes:z,attributeDivisors:$,object:S,attributes:{},index:null};}function f(S,L,z,$){let Q=r.attributes,O=L.attributes,W=0,ae=z.getAttributes();for(let H in ae)if(ae[H].location>=0){var _guard572,_guard573,_guard574,_guard575,_guard576,_guard577;let ce=Q[H],ge=O[H];if(_guard576=ge===void 0,_guard576?(_guard573=(_guard572=H===\"instanceMatrix\",_guard572?S.instanceMatrix:_guard572),_guard573?ge=S.instanceMatrix:_guard573,_guard575=(_guard574=H===\"instanceColor\",_guard574?S.instanceColor:_guard574),_guard575?ge=S.instanceColor:_guard575):_guard576,ce===void 0||ce.attribute!==ge||(_guard577=ge,_guard577?ce.data!==ge.data:_guard577))return!0;W++;}return r.attributesNum!==W||r.index!==$;}function g(S,L,z,$){let Q={},O=L.attributes,W=0,ae=z.getAttributes();for(let H in ae)if(ae[H].location>=0){var _guard578,_guard579,_guard580,_guard581,_guard582,_guard583,_guard584;let ce=O[H];_guard582=ce===void 0,_guard582?(_guard579=(_guard578=H===\"instanceMatrix\",_guard578?S.instanceMatrix:_guard578),_guard579?ce=S.instanceMatrix:_guard579,_guard581=(_guard580=H===\"instanceColor\",_guard580?S.instanceColor:_guard580),_guard581?ce=S.instanceColor:_guard581):_guard582;let ge={};ge.attribute=ce,_guard584=(_guard583=ce,_guard583?ce.data:_guard583),_guard584?ge.data=ce.data:_guard584,Q[H]=ge,W++;}r.attributes=Q,r.attributesNum=W,r.index=$;}function _(){let S=r.newAttributes;for(let L=0,z=S.length;L<z;L++)S[L]=0;}function m(S){p(S,0);}function p(S,L){var _guard585,_guard586;let z=r.newAttributes,$=r.enabledAttributes,Q=r.attributeDivisors;z[S]=1,_guard585=$[S]===0,_guard585?(i.enableVertexAttribArray(S),$[S]=1):_guard585,_guard586=Q[S]!==L,_guard586?(i.vertexAttribDivisor(S,L),Q[S]=L):_guard586;}function E(){let S=r.newAttributes,L=r.enabledAttributes;for(let z=0,$=L.length;z<$;z++){var _guard587;_guard587=L[z]!==S[z],_guard587?(i.disableVertexAttribArray(z),L[z]=0):_guard587;}}function T(S,L,z,$,Q,O,W){W===!0?i.vertexAttribIPointer(S,L,z,Q,O):i.vertexAttribPointer(S,L,z,$,Q,O);}function y(S,L,z,$){_();let Q=$.attributes,O=z.getAttributes(),W=L.defaultAttributeValues;for(let ae in O){let H=O[ae];if(H.location>=0){var _guard588,_guard589,_guard590,_guard591,_guard592;let q=Q[ae];if(_guard592=q===void 0,_guard592?(_guard589=(_guard588=ae===\"instanceMatrix\",_guard588?S.instanceMatrix:_guard588),_guard589?q=S.instanceMatrix:_guard589,_guard591=(_guard590=ae===\"instanceColor\",_guard590?S.instanceColor:_guard590),_guard591?q=S.instanceColor:_guard591):_guard592,q!==void 0){let ce=q.normalized,ge=q.itemSize,Pe=e.get(q);if(Pe===void 0)continue;let Fe=Pe.buffer,ve=Pe.type,Ie=Pe.bytesPerElement,J=ve===i.INT||ve===i.UNSIGNED_INT||q.gpuType===ca;if(q.isInterleavedBufferAttribute){let re=q.data,pe=re.stride,me=q.offset;if(re.isInstancedInterleavedBuffer){var _guard593,_guard594;for(let Me=0;Me<H.locationSize;Me++)p(H.location+Me,re.meshPerAttribute);_guard594=(_guard593=S.isInstancedMesh!==!0,_guard593?$._maxInstanceCount===void 0:_guard593),_guard594?$._maxInstanceCount=re.meshPerAttribute*re.count:_guard594;}else for(let Me=0;Me<H.locationSize;Me++)m(H.location+Me);i.bindBuffer(i.ARRAY_BUFFER,Fe);for(let Me=0;Me<H.locationSize;Me++)T(H.location+Me,ge\/H.locationSize,ve,ce,pe*Ie,(me+ge\/H.locationSize*Me)*Ie,J);}else{if(q.isInstancedBufferAttribute){var _guard595,_guard596;for(let re=0;re<H.locationSize;re++)p(H.location+re,q.meshPerAttribute);_guard596=(_guard595=S.isInstancedMesh!==!0,_guard595?$._maxInstanceCount===void 0:_guard595),_guard596?$._maxInstanceCount=q.meshPerAttribute*q.count:_guard596;}else for(let re=0;re<H.locationSize;re++)m(H.location+re);i.bindBuffer(i.ARRAY_BUFFER,Fe);for(let re=0;re<H.locationSize;re++)T(H.location+re,ge\/H.locationSize,ve,ce,ge*Ie,ge\/H.locationSize*re*Ie,J);}}else if(W!==void 0){let ce=W[ae];if(ce!==void 0)switch(ce.length){case 2:i.vertexAttrib2fv(H.location,ce);break;case 3:i.vertexAttrib3fv(H.location,ce);break;case 4:i.vertexAttrib4fv(H.location,ce);break;default:i.vertexAttrib1fv(H.location,ce);}}}}E();}function R(){F();for(let S in n){let L=n[S];for(let z in L){let $=L[z];for(let Q in $)u($[Q].object),delete $[Q];delete L[z];}delete n[S];}}function w(S){if(n[S.id]===void 0)return;let L=n[S.id];for(let z in L){let $=L[z];for(let Q in $)u($[Q].object),delete $[Q];delete L[z];}delete n[S.id];}function P(S){for(let L in n){let z=n[L];if(z[S.id]===void 0)continue;let $=z[S.id];for(let Q in $)u($[Q].object),delete $[Q];delete z[S.id];}}function F(){var _guard597;M(),o=!0,_guard597=r!==s,_guard597?(r=s,l(r.object)):_guard597;}function M(){s.geometry=null,s.program=null,s.wireframe=!1;}return{setup:a,reset:F,resetDefaultState:M,dispose:R,releaseStatesOfGeometry:w,releaseStatesOfProgram:P,initAttributes:_,enableAttribute:m,disableUnusedAttributes:E};}function c_(i,e,t){let n;function s(l){n=l;}function r(l,u){i.drawArrays(n,l,u),t.update(u,n,1);}function o(l,u,h){var _guard598;_guard598=h!==0,_guard598?(i.drawArraysInstanced(n,l,u,h),t.update(u,n,h)):_guard598;}function a(l,u,h){if(h===0)return;e.get(\"WEBGL_multi_draw\").multiDrawArraysWEBGL(n,l,0,u,0,h);let f=0;for(let g=0;g<h;g++)f+=u[g];t.update(f,n,1);}function c(l,u,h,d){if(h===0)return;let f=e.get(\"WEBGL_multi_draw\");if(f===null)for(let g=0;g<l.length;g++)o(l[g],u[g],d[g]);else{f.multiDrawArraysInstancedWEBGL(n,l,0,u,0,d,0,h);let g=0;for(let _=0;_<h;_++)g+=u[_]*d[_];t.update(g,n,1);}}this.setMode=s,this.render=r,this.renderInstances=o,this.renderMultiDraw=a,this.renderMultiDrawInstances=c;}function u_(i,e,t,n){var _guard607,_guard608;let s;function r(){if(s!==void 0)return s;if(e.has(\"EXT_texture_filter_anisotropic\")===!0){let P=e.get(\"EXT_texture_filter_anisotropic\");s=i.getParameter(P.MAX_TEXTURE_MAX_ANISOTROPY_EXT);}else s=0;return s;}function o(P){var _guard599;return!(_guard599=P!==un,_guard599?n.convert(P)!==i.getParameter(i.IMPLEMENTATION_COLOR_READ_FORMAT):_guard599);}function a(P){var _guard600,_guard601,_guard602,_guard603;let F=(_guard600=P===xs,_guard600?e.has(\"EXT_color_buffer_half_float\")||e.has(\"EXT_color_buffer_float\"):_guard600);return!(_guard603=(_guard602=(_guard601=P!==Mn,_guard601?n.convert(P)!==i.getParameter(i.IMPLEMENTATION_COLOR_READ_TYPE):_guard601),_guard602?P!==Cn:_guard602),_guard603?!F:_guard603);}function c(P){var _guard605,_guard606;if(P===\"highp\"){var _guard604;if(_guard604=i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.HIGH_FLOAT).precision>0,_guard604?i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0:_guard604)return\"highp\";P=\"mediump\";}return(_guard606=(_guard605=P===\"mediump\",_guard605?i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0:_guard605),_guard606?i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0:_guard606)?\"mediump\":\"lowp\";}let l=t.precision!==void 0?t.precision:\"highp\",u=c(l);_guard607=u!==l,_guard607?(console.warn(\"THREE.WebGLRenderer:\",l,\"not supported, using\",u,\"instead.\"),l=u):_guard607;let h=t.logarithmicDepthBuffer===!0,d=(_guard608=t.reversedDepthBuffer===!0,_guard608?e.has(\"EXT_clip_control\"):_guard608),f=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),g=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),_=i.getParameter(i.MAX_TEXTURE_SIZE),m=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),p=i.getParameter(i.MAX_VERTEX_ATTRIBS),E=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),T=i.getParameter(i.MAX_VARYING_VECTORS),y=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),R=g>0,w=i.getParameter(i.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:c,textureFormatReadable:o,textureTypeReadable:a,precision:l,logarithmicDepthBuffer:h,reversedDepthBuffer:d,maxTextures:f,maxVertexTextures:g,maxTextureSize:_,maxCubemapSize:m,maxAttributes:p,maxVertexUniforms:E,maxVaryings:T,maxFragmentUniforms:y,vertexTextures:R,maxSamples:w};}function h_(i){let e=this,t=null,n=0,s=!1,r=!1,o=new Tn(),a=new Ye(),c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(h,d){let f=h.length!==0||d||n!==0||s;return s=d,n=h.length,f;},this.beginShadows=function(){r=!0,u(null);},this.endShadows=function(){r=!1;},this.setGlobalState=function(h,d){t=u(h,d,0);},this.setState=function(h,d,f){var _guard609;let g=h.clippingPlanes,_=h.clipIntersection,m=h.clipShadows,p=i.get(h);if(!s||g===null||g.length===0||(_guard609=r,_guard609?!m:_guard609))r?u(null):l();else{let E=r?0:n,T=E*4,y=p.clippingState||null;c.value=y,y=u(g,d,T,f);for(let R=0;R!==T;++R)y[R]=t[R];p.clippingState=y,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=E;}};function l(){var _guard610;_guard610=c.value!==t,_guard610?(c.value=t,c.needsUpdate=n>0):_guard610,e.numPlanes=n,e.numIntersection=0;}function u(h,d,f,g){let _=h!==null?h.length:0,m=null;if(_!==0){if(m=c.value,g!==!0||m===null){var _guard611;let p=f+_*4,E=d.matrixWorldInverse;a.getNormalMatrix(E),_guard611=m===null||m.length<p,_guard611?m=new Float32Array(p):_guard611;for(let T=0,y=f;T!==_;++T,y+=4)o.copy(h[T]).applyMatrix4(E,a),o.normal.toArray(m,y),m[y+3]=o.constant;}c.value=m,c.needsUpdate=!0;}return e.numPlanes=_,e.numIntersection=0,m;}}function d_(i){let e=new WeakMap();function t(o,a){var _guard612;return a===oa?o.mapping=Ni:(_guard612=a===aa,_guard612?o.mapping=Fi:_guard612),o;}function n(o){var _guard613;if(_guard613=o,_guard613?o.isTexture:_guard613){let a=o.mapping;if(a===oa||a===aa)if(e.has(o)){let c=e.get(o).texture;return t(c,o.mapping);}else{var _guard614;let c=o.image;if(_guard614=c,_guard614?c.height>0:_guard614){let l=new Ro(c.height);return l.fromEquirectangularTexture(i,o),e.set(o,l),o.addEventListener(\"dispose\",s),t(l.texture,o.mapping);}else return null;}}return o;}function s(o){var _guard615;let a=o.target;a.removeEventListener(\"dispose\",s);let c=e.get(a);_guard615=c!==void 0,_guard615?(e.delete(a),c.dispose()):_guard615;}function r(){e=new WeakMap();}return{get:n,dispose:r};}var Ss=4,qh=[.125,.215,.35,.446,.526,.582],ki=20,Ic=new _r(),Yh=new $e(),Pc=null,Dc=0,Lc=0,Uc=!1,Vi=(1+Math.sqrt(5))\/2,Ms=1\/Vi,Zh=[new N(-Vi,Ms,0),new N(Vi,Ms,0),new N(-Ms,0,Vi),new N(Ms,0,Vi),new N(0,Vi,-Ms),new N(0,Vi,Ms),new N(-1,1,-1),new N(1,1,-1),new N(-1,1,1),new N(1,1,1)],f_=new N(),qa=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial);}fromScene(e,t=0,n=.1,s=100,r={}){var _guard616;let{size:o=256,position:a=f_}=r;Pc=this._renderer.getRenderTarget(),Dc=this._renderer.getActiveCubeFace(),Lc=this._renderer.getActiveMipmapLevel(),Uc=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(o);let c=this._allocateTargets();return c.depthBuffer=!0,this._sceneToCubeUV(e,n,s,c,a),_guard616=t>0,_guard616?this._blur(c,0,0,t):_guard616,this._applyPMREM(c),this._cleanup(c),c;}fromEquirectangular(e,t=null){return this._fromTexture(e,t);}fromCubemap(e,t=null){return this._fromTexture(e,t);}compileCubemapShader(){var _guard617;_guard617=this._cubemapMaterial===null,_guard617?(this._cubemapMaterial=Kh(),this._compileMaterial(this._cubemapMaterial)):_guard617;}compileEquirectangularShader(){var _guard618;_guard618=this._equirectMaterial===null,_guard618?(this._equirectMaterial=Jh(),this._compileMaterial(this._equirectMaterial)):_guard618;}dispose(){var _guard619,_guard620;this._dispose(),_guard619=this._cubemapMaterial!==null,_guard619?this._cubemapMaterial.dispose():_guard619,_guard620=this._equirectMaterial!==null,_guard620?this._equirectMaterial.dispose():_guard620;}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax);}_dispose(){var _guard621,_guard622;_guard621=this._blurMaterial!==null,_guard621?this._blurMaterial.dispose():_guard621,_guard622=this._pingPongRenderTarget!==null,_guard622?this._pingPongRenderTarget.dispose():_guard622;for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose();}_cleanup(e){this._renderer.setRenderTarget(Pc,Dc,Lc),this._renderer.xr.enabled=Uc,e.scissorTest=!1,Wa(e,0,0,e.width,e.height);}_fromTexture(e,t){e.mapping===Ni||e.mapping===Fi?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width\/4),Pc=this._renderer.getRenderTarget(),Dc=this._renderer.getActiveCubeFace(),Lc=this._renderer.getActiveMipmapLevel(),Uc=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;let n=t||this._allocateTargets();return this._textureToCubeUV(e,n),this._applyPMREM(n),this._cleanup(n),n;}_allocateTargets(){let e=3*Math.max(this._cubeSize,112),t=4*this._cubeSize,n={magFilter:xn,minFilter:xn,generateMipmaps:!1,type:xs,format:un,colorSpace:Ri,depthBuffer:!1},s=$h(e,t,n);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==t){var _guard623;_guard623=this._pingPongRenderTarget!==null,_guard623?this._dispose():_guard623,this._pingPongRenderTarget=$h(e,t,n);let{_lodMax:r}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=p_(r)),this._blurMaterial=m_(r,e,t);}return s;}_compileMaterial(e){let t=new Ht(this._lodPlanes[0],e);this._renderer.compile(t,Ic);}_sceneToCubeUV(e,t,n,s,r){var _guard624,_guard625;let c=new Ft(90,1,t,n),l=[1,-1,1,1,1,1],u=[1,1,1,-1,-1,-1],h=this._renderer,d=h.autoClear,f=h.toneMapping;h.getClearColor(Yh),h.toneMapping=$n,h.autoClear=!1,_guard624=h.state.buffers.depth.getReversed(),_guard624?(h.setRenderTarget(s),h.clearDepth(),h.setRenderTarget(null)):_guard624;let _=new js({name:\"PMREM.Background\",side:Gt,depthWrite:!1,depthTest:!1}),m=new Ht(new ln(),_),p=!1,E=e.background;E?(_guard625=E.isColor,_guard625?(_.color.copy(E),e.background=null,p=!0):_guard625):(_.color.copy(Yh),p=!0);for(let T=0;T<6;T++){var _guard626;let y=T%3;y===0?(c.up.set(0,l[T],0),c.position.set(r.x,r.y,r.z),c.lookAt(r.x+u[T],r.y,r.z)):y===1?(c.up.set(0,0,l[T]),c.position.set(r.x,r.y,r.z),c.lookAt(r.x,r.y+u[T],r.z)):(c.up.set(0,l[T],0),c.position.set(r.x,r.y,r.z),c.lookAt(r.x,r.y,r.z+u[T]));let R=this._cubeSize;Wa(s,y*R,T>2?R:0,R,R),h.setRenderTarget(s),_guard626=p,_guard626?h.render(m,c):_guard626,h.render(e,c);}m.geometry.dispose(),m.material.dispose(),h.toneMapping=f,h.autoClear=d,e.background=E;}_textureToCubeUV(e,t){var _guard627,_guard628;let n=this._renderer,s=e.mapping===Ni||e.mapping===Fi;s?(_guard627=this._cubemapMaterial===null,_guard627?this._cubemapMaterial=Kh():_guard627,this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):(_guard628=this._equirectMaterial===null,_guard628?this._equirectMaterial=Jh():_guard628);let r=s?this._cubemapMaterial:this._equirectMaterial,o=new Ht(this._lodPlanes[0],r),a=r.uniforms;a.envMap.value=e;let c=this._cubeSize;Wa(t,0,0,3*c,2*c),n.setRenderTarget(t),n.render(o,Ic);}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;let s=this._lodPlanes.length;for(let r=1;r<s;r++){let o=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),a=Zh[(s-r-1)%Zh.length];this._blur(e,r-1,r,o,a);}t.autoClear=n;}_blur(e,t,n,s,r){let o=this._pingPongRenderTarget;this._halfBlur(e,o,t,n,s,\"latitudinal\",r),this._halfBlur(o,e,n,n,s,\"longitudinal\",r);}_halfBlur(e,t,n,s,r,o,a){var _guard629,_guard630,_guard631,_guard633;let c=this._renderer,l=this._blurMaterial;_guard630=(_guard629=o!==\"latitudinal\",_guard629?o!==\"longitudinal\":_guard629),_guard630?console.error(\"blur direction must be either latitudinal or longitudinal!\"):_guard630;let u=3,h=new Ht(this._lodPlanes[s],l),d=l.uniforms,f=this._sizeLods[n]-1,g=isFinite(r)?Math.PI\/(2*f):2*Math.PI\/(2*ki-1),_=r\/g,m=isFinite(r)?1+Math.floor(u*_):ki;_guard631=m>ki,_guard631?console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${ki}`):_guard631;let p=[],E=0;for(let P=0;P<ki;++P){var _guard632;let F=P\/_,M=Math.exp(-F*F\/2);p.push(M),P===0?E+=M:(_guard632=P<m,_guard632?E+=2*M:_guard632);}for(let P=0;P<p.length;P++)p[P]=p[P]\/E;d.envMap.value=e.texture,d.samples.value=m,d.weights.value=p,d.latitudinal.value=o===\"latitudinal\",_guard633=a,_guard633?d.poleAxis.value=a:_guard633;let{_lodMax:T}=this;d.dTheta.value=g,d.mipInt.value=T-n;let y=this._sizeLods[s],R=3*y*(s>T-Ss?s-T+Ss:0),w=4*(this._cubeSize-y);Wa(t,R,w,3*y,2*y),c.setRenderTarget(t),c.render(h,Ic);}};function p_(i){let e=[],t=[],n=[],s=i,r=i-Ss+1+qh.length;for(let o=0;o<r;o++){var _guard634,_guard635;let a=Math.pow(2,s);t.push(a);let c=1\/a;o>i-Ss?c=qh[o-i+Ss-1]:(_guard634=o===0,_guard634?c=0:_guard634),n.push(c);let l=1\/(a-2),u=-l,h=1+l,d=[u,u,h,u,h,h,u,u,h,h,u,h],f=6,g=6,_=3,m=2,p=1,E=new Float32Array(_*g*f),T=new Float32Array(m*g*f),y=new Float32Array(p*g*f);for(let w=0;w<f;w++){let P=w%3*2\/3-1,F=w>2?0:-1,M=[P,F,0,P+2\/3,F,0,P+2\/3,F+1,0,P,F,0,P+2\/3,F+1,0,P,F+1,0];E.set(M,_*g*w),T.set(d,m*g*w);let S=[w,w,w,w,w,w];y.set(S,p*g*w);}let R=new Ot();R.setAttribute(\"position\",new kt(E,_)),R.setAttribute(\"uv\",new kt(T,m)),R.setAttribute(\"faceIndex\",new kt(y,p)),e.push(R),_guard635=s>Ss,_guard635?s--:_guard635;}return{lodPlanes:e,sizeLods:t,sigmas:n};}function $h(i,e,t){let n=new En(i,e,t);return n.texture.mapping=xr,n.texture.name=\"PMREM.cubeUv\",n.scissorTest=!0,n;}function Wa(i,e,t,n,s){i.viewport.set(e,t,n,s),i.scissor.set(e,t,n,s);}function m_(i,e,t){let n=new Float32Array(ki),s=new N(0,1,0);return new vn({name:\"SphericalGaussianBlur\",defines:{n:ki,CUBEUV_TEXEL_WIDTH:1\/e,CUBEUV_TEXEL_HEIGHT:1\/t,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:Wc(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t\/\/ Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,blending:Zn,depthTest:!1,depthWrite:!1});}function Jh(){return new vn({name:\"EquirectangularToCubeUV\",uniforms:{envMap:{value:null}},vertexShader:Wc(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,blending:Zn,depthTest:!1,depthWrite:!1});}function Kh(){return new vn({name:\"CubemapToCubeUV\",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Wc(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,blending:Zn,depthTest:!1,depthWrite:!1});}function Wc(){return`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t\/\/ RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; \/\/ ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; \/\/ ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; \/\/ ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; \/\/ ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; \/\/ ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; \/\/ ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`;}function g_(i){let e=new WeakMap(),t=null;function n(a){var _guard636;if(_guard636=a,_guard636?a.isTexture:_guard636){let c=a.mapping,l=c===oa||c===aa,u=c===Ni||c===Fi;if(l||u){var _guard637,_guard638;let h=e.get(a),d=h!==void 0?h.texture.pmremVersion:0;if(_guard637=a.isRenderTargetTexture,_guard637?a.pmremVersion!==d:_guard637)return _guard638=t===null,_guard638?t=new qa(i):_guard638,h=l?t.fromEquirectangular(a,h):t.fromCubemap(a,h),h.texture.pmremVersion=a.pmremVersion,e.set(a,h),h.texture;if(h!==void 0)return h.texture;{var _guard639,_guard640,_guard641,_guard642,_guard643;let f=a.image;return(_guard640=(_guard639=l,_guard639?f:_guard639),_guard640?f.height>0:_guard640)||(_guard642=(_guard641=u,_guard641?f:_guard641),_guard642?s(f):_guard642)?(_guard643=t===null,_guard643?t=new qa(i):_guard643,h=l?t.fromEquirectangular(a):t.fromCubemap(a),h.texture.pmremVersion=a.pmremVersion,e.set(a,h),a.addEventListener(\"dispose\",r),h.texture):null;}}}return a;}function s(a){let c=0,l=6;for(let u=0;u<l;u++){var _guard644;_guard644=a[u]!==void 0,_guard644?c++:_guard644;}return c===l;}function r(a){var _guard645;let c=a.target;c.removeEventListener(\"dispose\",r);let l=e.get(c);_guard645=l!==void 0,_guard645?(e.delete(c),l.dispose()):_guard645;}function o(){var _guard646;e=new WeakMap(),_guard646=t!==null,_guard646?(t.dispose(),t=null):_guard646;}return{get:n,dispose:o};}function __(i){let e={};function t(n){if(e[n]!==void 0)return e[n];let s;switch(n){case\"WEBGL_depth_texture\":s=i.getExtension(\"WEBGL_depth_texture\")||i.getExtension(\"MOZ_WEBGL_depth_texture\")||i.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":s=i.getExtension(\"EXT_texture_filter_anisotropic\")||i.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||i.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":s=i.getExtension(\"WEBGL_compressed_texture_s3tc\")||i.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||i.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":s=i.getExtension(\"WEBGL_compressed_texture_pvrtc\")||i.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:s=i.getExtension(n);}return e[n]=s,s;}return{has:function(n){return t(n)!==null;},init:function(){t(\"EXT_color_buffer_float\"),t(\"WEBGL_clip_cull_distance\"),t(\"OES_texture_float_linear\"),t(\"EXT_color_buffer_half_float\"),t(\"WEBGL_multisampled_render_to_texture\"),t(\"WEBGL_render_shared_exponent\");},get:function(n){var _guard647;let s=t(n);return _guard647=s===null,_guard647?cs(\"THREE.WebGLRenderer: \"+n+\" extension not supported.\"):_guard647,s;}};}function x_(i,e,t,n){let s={},r=new WeakMap();function o(h){var _guard648,_guard649,_guard650;let d=h.target;_guard648=d.index!==null,_guard648?e.remove(d.index):_guard648;for(let g in d.attributes)e.remove(d.attributes[g]);d.removeEventListener(\"dispose\",o),delete s[d.id];let f=r.get(d);_guard649=f,_guard649?(e.remove(f),r.delete(d)):_guard649,n.releaseStatesOfGeometry(d),_guard650=d.isInstancedBufferGeometry===!0,_guard650?delete d._maxInstanceCount:_guard650,t.memory.geometries--;}function a(h,d){return s[d.id]===!0||(d.addEventListener(\"dispose\",o),s[d.id]=!0,t.memory.geometries++),d;}function c(h){let d=h.attributes;for(let f in d)e.update(d[f],i.ARRAY_BUFFER);}function l(h){var _guard651;let d=[],f=h.index,g=h.attributes.position,_=0;if(f!==null){let E=f.array;_=f.version;for(let T=0,y=E.length;T<y;T+=3){let R=E[T+0],w=E[T+1],P=E[T+2];d.push(R,w,w,P,P,R);}}else if(g!==void 0){let E=g.array;_=g.version;for(let T=0,y=E.length\/3-1;T<y;T+=3){let R=T+0,w=T+1,P=T+2;d.push(R,w,w,P,P,R);}}else return;let m=new(Tc(d)?tr:er)(d,1);m.version=_;let p=r.get(h);_guard651=p,_guard651?e.remove(p):_guard651,r.set(h,m);}function u(h){let d=r.get(h);if(d){var _guard652,_guard653;let f=h.index;_guard653=(_guard652=f!==null,_guard652?d.version<f.version:_guard652),_guard653?l(h):_guard653;}else l(h);return r.get(h);}return{get:a,update:c,getWireframeAttribute:u};}function y_(i,e,t){let n;function s(d){n=d;}let r,o;function a(d){r=d.type,o=d.bytesPerElement;}function c(d,f){i.drawElements(n,f,r,d*o),t.update(f,n,1);}function l(d,f,g){var _guard654;_guard654=g!==0,_guard654?(i.drawElementsInstanced(n,f,r,d*o,g),t.update(f,n,g)):_guard654;}function u(d,f,g){if(g===0)return;e.get(\"WEBGL_multi_draw\").multiDrawElementsWEBGL(n,f,0,r,d,0,g);let m=0;for(let p=0;p<g;p++)m+=f[p];t.update(m,n,1);}function h(d,f,g,_){if(g===0)return;let m=e.get(\"WEBGL_multi_draw\");if(m===null)for(let p=0;p<d.length;p++)l(d[p]\/o,f[p],_[p]);else{m.multiDrawElementsInstancedWEBGL(n,f,0,r,d,0,_,0,g);let p=0;for(let E=0;E<g;E++)p+=f[E]*_[E];t.update(p,n,1);}}this.setMode=s,this.setIndex=a,this.render=c,this.renderInstances=l,this.renderMultiDraw=u,this.renderMultiDrawInstances=h;}function v_(i){let e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function n(r,o,a){switch(t.calls++,o){case i.TRIANGLES:t.triangles+=a*(r\/3);break;case i.LINES:t.lines+=a*(r\/2);break;case i.LINE_STRIP:t.lines+=a*(r-1);break;case i.LINE_LOOP:t.lines+=a*r;break;case i.POINTS:t.points+=a*r;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",o);break;}}function s(){t.calls=0,t.triangles=0,t.points=0,t.lines=0;}return{memory:e,render:t,programs:null,autoReset:!0,reset:s,update:n};}function M_(i,e,t){let n=new WeakMap(),s=new vt();function r(o,a,c){var _guard663;let l=o.morphTargetInfluences,u=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color,h=u!==void 0?u.length:0,d=n.get(a);if(d===void 0||d.count!==h){var _guard655,_guard656,_guard657,_guard658,_guard659;let M=function(){P.dispose(),n.delete(a),a.removeEventListener(\"dispose\",M);};_guard655=d!==void 0,_guard655?d.texture.dispose():_guard655;let f=a.morphAttributes.position!==void 0,g=a.morphAttributes.normal!==void 0,_=a.morphAttributes.color!==void 0,m=a.morphAttributes.position||[],p=a.morphAttributes.normal||[],E=a.morphAttributes.color||[],T=0;_guard656=f===!0,_guard656?T=1:_guard656,_guard657=g===!0,_guard657?T=2:_guard657,_guard658=_===!0,_guard658?T=3:_guard658;let y=a.attributes.position.count*T,R=1;_guard659=y>e.maxTextureSize,_guard659?(R=Math.ceil(y\/e.maxTextureSize),y=e.maxTextureSize):_guard659;let w=new Float32Array(y*R*4*h),P=new Js(w,y,R,h);P.type=Cn,P.needsUpdate=!0;let F=T*4;for(let S=0;S<h;S++){let L=m[S],z=p[S],$=E[S],Q=y*R*4*S;for(let O=0;O<L.count;O++){var _guard660,_guard661,_guard662;let W=O*F;_guard660=f===!0,_guard660?(s.fromBufferAttribute(L,O),w[Q+W+0]=s.x,w[Q+W+1]=s.y,w[Q+W+2]=s.z,w[Q+W+3]=0):_guard660,_guard661=g===!0,_guard661?(s.fromBufferAttribute(z,O),w[Q+W+4]=s.x,w[Q+W+5]=s.y,w[Q+W+6]=s.z,w[Q+W+7]=0):_guard661,_guard662=_===!0,_guard662?(s.fromBufferAttribute($,O),w[Q+W+8]=s.x,w[Q+W+9]=s.y,w[Q+W+10]=s.z,w[Q+W+11]=$.itemSize===4?s.w:1):_guard662;}}d={count:h,texture:P,size:new ze(y,R)},n.set(a,d),a.addEventListener(\"dispose\",M);}if(_guard663=o.isInstancedMesh===!0,_guard663?o.morphTexture!==null:_guard663)c.getUniforms().setValue(i,\"morphTexture\",o.morphTexture,t);else{let f=0;for(let _=0;_<l.length;_++)f+=l[_];let g=a.morphTargetsRelative?1:1-f;c.getUniforms().setValue(i,\"morphTargetBaseInfluence\",g),c.getUniforms().setValue(i,\"morphTargetInfluences\",l);}c.getUniforms().setValue(i,\"morphTargetsTexture\",d.texture,t),c.getUniforms().setValue(i,\"morphTargetsTextureSize\",d.size);}return{update:r};}function S_(i,e,t,n){let s=new WeakMap();function r(c){var _guard664,_guard665,_guard666,_guard667,_guard668;let l=n.render.frame,u=c.geometry,h=e.get(c,u);if(_guard664=s.get(h)!==l,_guard664?(e.update(h),s.set(h,l)):_guard664,_guard668=c.isInstancedMesh,_guard668?(_guard665=c.hasEventListener(\"dispose\",a)===!1,_guard665?c.addEventListener(\"dispose\",a):_guard665,_guard667=s.get(c)!==l,_guard667?(t.update(c.instanceMatrix,i.ARRAY_BUFFER),_guard666=c.instanceColor!==null,_guard666?t.update(c.instanceColor,i.ARRAY_BUFFER):_guard666,s.set(c,l)):_guard667):_guard668,c.isSkinnedMesh){var _guard669;let d=c.skeleton;_guard669=s.get(d)!==l,_guard669?(d.update(),s.set(d,l)):_guard669;}return h;}function o(){s=new WeakMap();}function a(c){var _guard670;let l=c.target;l.removeEventListener(\"dispose\",a),t.remove(l.instanceMatrix),_guard670=l.instanceColor!==null,_guard670?t.remove(l.instanceColor):_guard670;}return{update:r,dispose:o};}var gd=new jt(),Qh=new or(1,1),_d=new Js(),xd=new wo(),yd=new ir(),jh=[],ed=[],td=new Float32Array(16),nd=new Float32Array(9),id=new Float32Array(4);function Ts(i,e,t){var _guard671;let n=i[0];if(n<=0||n>0)return i;let s=e*t,r=jh[s];if(_guard671=r===void 0,_guard671?(r=new Float32Array(s),jh[s]=r):_guard671,e!==0){n.toArray(r,0);for(let o=1,a=0;o!==e;++o)a+=t,i[o].toArray(r,a);}return r;}function wt(i,e){if(i.length!==e.length)return!1;for(let t=0,n=i.length;t<n;t++)if(i[t]!==e[t])return!1;return!0;}function Ct(i,e){for(let t=0,n=e.length;t<n;t++)i[t]=e[t];}function Za(i,e){var _guard672;let t=ed[e];_guard672=t===void 0,_guard672?(t=new Int32Array(e),ed[e]=t):_guard672;for(let n=0;n!==e;++n)t[n]=i.allocateTextureUnit();return t;}function b_(i,e){var _guard673;let t=this.cache;_guard673=t[0]!==e,_guard673?(i.uniform1f(this.addr,e),t[0]=e):_guard673;}function T_(i,e){var _guard674;let t=this.cache;if(e.x!==void 0)_guard674=t[0]!==e.x||t[1]!==e.y,_guard674?(i.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y):_guard674;else{if(wt(t,e))return;i.uniform2fv(this.addr,e),Ct(t,e);}}function E_(i,e){var _guard675,_guard676;let t=this.cache;if(e.x!==void 0)_guard675=t[0]!==e.x||t[1]!==e.y||t[2]!==e.z,_guard675?(i.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z):_guard675;else if(e.r!==void 0)_guard676=t[0]!==e.r||t[1]!==e.g||t[2]!==e.b,_guard676?(i.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b):_guard676;else{if(wt(t,e))return;i.uniform3fv(this.addr,e),Ct(t,e);}}function A_(i,e){var _guard677;let t=this.cache;if(e.x!==void 0)_guard677=t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w,_guard677?(i.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w):_guard677;else{if(wt(t,e))return;i.uniform4fv(this.addr,e),Ct(t,e);}}function w_(i,e){let t=this.cache,n=e.elements;if(n===void 0){if(wt(t,e))return;i.uniformMatrix2fv(this.addr,!1,e),Ct(t,e);}else{if(wt(t,n))return;id.set(n),i.uniformMatrix2fv(this.addr,!1,id),Ct(t,n);}}function C_(i,e){let t=this.cache,n=e.elements;if(n===void 0){if(wt(t,e))return;i.uniformMatrix3fv(this.addr,!1,e),Ct(t,e);}else{if(wt(t,n))return;nd.set(n),i.uniformMatrix3fv(this.addr,!1,nd),Ct(t,n);}}function R_(i,e){let t=this.cache,n=e.elements;if(n===void 0){if(wt(t,e))return;i.uniformMatrix4fv(this.addr,!1,e),Ct(t,e);}else{if(wt(t,n))return;td.set(n),i.uniformMatrix4fv(this.addr,!1,td),Ct(t,n);}}function I_(i,e){var _guard678;let t=this.cache;_guard678=t[0]!==e,_guard678?(i.uniform1i(this.addr,e),t[0]=e):_guard678;}function P_(i,e){var _guard679;let t=this.cache;if(e.x!==void 0)_guard679=t[0]!==e.x||t[1]!==e.y,_guard679?(i.uniform2i(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y):_guard679;else{if(wt(t,e))return;i.uniform2iv(this.addr,e),Ct(t,e);}}function D_(i,e){var _guard680;let t=this.cache;if(e.x!==void 0)_guard680=t[0]!==e.x||t[1]!==e.y||t[2]!==e.z,_guard680?(i.uniform3i(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z):_guard680;else{if(wt(t,e))return;i.uniform3iv(this.addr,e),Ct(t,e);}}function L_(i,e){var _guard681;let t=this.cache;if(e.x!==void 0)_guard681=t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w,_guard681?(i.uniform4i(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w):_guard681;else{if(wt(t,e))return;i.uniform4iv(this.addr,e),Ct(t,e);}}function U_(i,e){var _guard682;let t=this.cache;_guard682=t[0]!==e,_guard682?(i.uniform1ui(this.addr,e),t[0]=e):_guard682;}function N_(i,e){var _guard683;let t=this.cache;if(e.x!==void 0)_guard683=t[0]!==e.x||t[1]!==e.y,_guard683?(i.uniform2ui(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y):_guard683;else{if(wt(t,e))return;i.uniform2uiv(this.addr,e),Ct(t,e);}}function F_(i,e){var _guard684;let t=this.cache;if(e.x!==void 0)_guard684=t[0]!==e.x||t[1]!==e.y||t[2]!==e.z,_guard684?(i.uniform3ui(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z):_guard684;else{if(wt(t,e))return;i.uniform3uiv(this.addr,e),Ct(t,e);}}function O_(i,e){var _guard685;let t=this.cache;if(e.x!==void 0)_guard685=t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w,_guard685?(i.uniform4ui(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w):_guard685;else{if(wt(t,e))return;i.uniform4uiv(this.addr,e),Ct(t,e);}}function B_(i,e,t){var _guard686;let n=this.cache,s=t.allocateTextureUnit();_guard686=n[0]!==s,_guard686?(i.uniform1i(this.addr,s),n[0]=s):_guard686;let r;this.type===i.SAMPLER_2D_SHADOW?(Qh.compareFunction=Sc,r=Qh):r=gd,t.setTexture2D(e||r,s);}function z_(i,e,t){var _guard687;let n=this.cache,s=t.allocateTextureUnit();_guard687=n[0]!==s,_guard687?(i.uniform1i(this.addr,s),n[0]=s):_guard687,t.setTexture3D(e||xd,s);}function V_(i,e,t){var _guard688;let n=this.cache,s=t.allocateTextureUnit();_guard688=n[0]!==s,_guard688?(i.uniform1i(this.addr,s),n[0]=s):_guard688,t.setTextureCube(e||yd,s);}function k_(i,e,t){var _guard689;let n=this.cache,s=t.allocateTextureUnit();_guard689=n[0]!==s,_guard689?(i.uniform1i(this.addr,s),n[0]=s):_guard689,t.setTexture2DArray(e||_d,s);}function H_(i){switch(i){case 5126:return b_;case 35664:return T_;case 35665:return E_;case 35666:return A_;case 35674:return w_;case 35675:return C_;case 35676:return R_;case 5124:case 35670:return I_;case 35667:case 35671:return P_;case 35668:case 35672:return D_;case 35669:case 35673:return L_;case 5125:return U_;case 36294:return N_;case 36295:return F_;case 36296:return O_;case 35678:case 36198:case 36298:case 36306:case 35682:return B_;case 35679:case 36299:case 36307:return z_;case 35680:case 36300:case 36308:case 36293:return V_;case 36289:case 36303:case 36311:case 36292:return k_;}}function G_(i,e){i.uniform1fv(this.addr,e);}function W_(i,e){let t=Ts(e,this.size,2);i.uniform2fv(this.addr,t);}function X_(i,e){let t=Ts(e,this.size,3);i.uniform3fv(this.addr,t);}function q_(i,e){let t=Ts(e,this.size,4);i.uniform4fv(this.addr,t);}function Y_(i,e){let t=Ts(e,this.size,4);i.uniformMatrix2fv(this.addr,!1,t);}function Z_(i,e){let t=Ts(e,this.size,9);i.uniformMatrix3fv(this.addr,!1,t);}function $_(i,e){let t=Ts(e,this.size,16);i.uniformMatrix4fv(this.addr,!1,t);}function J_(i,e){i.uniform1iv(this.addr,e);}function K_(i,e){i.uniform2iv(this.addr,e);}function Q_(i,e){i.uniform3iv(this.addr,e);}function j_(i,e){i.uniform4iv(this.addr,e);}function e0(i,e){i.uniform1uiv(this.addr,e);}function t0(i,e){i.uniform2uiv(this.addr,e);}function n0(i,e){i.uniform3uiv(this.addr,e);}function i0(i,e){i.uniform4uiv(this.addr,e);}function s0(i,e,t){let n=this.cache,s=e.length,r=Za(t,s);wt(n,r)||(i.uniform1iv(this.addr,r),Ct(n,r));for(let o=0;o!==s;++o)t.setTexture2D(e[o]||gd,r[o]);}function r0(i,e,t){let n=this.cache,s=e.length,r=Za(t,s);wt(n,r)||(i.uniform1iv(this.addr,r),Ct(n,r));for(let o=0;o!==s;++o)t.setTexture3D(e[o]||xd,r[o]);}function o0(i,e,t){let n=this.cache,s=e.length,r=Za(t,s);wt(n,r)||(i.uniform1iv(this.addr,r),Ct(n,r));for(let o=0;o!==s;++o)t.setTextureCube(e[o]||yd,r[o]);}function a0(i,e,t){let n=this.cache,s=e.length,r=Za(t,s);wt(n,r)||(i.uniform1iv(this.addr,r),Ct(n,r));for(let o=0;o!==s;++o)t.setTexture2DArray(e[o]||_d,r[o]);}function l0(i){switch(i){case 5126:return G_;case 35664:return W_;case 35665:return X_;case 35666:return q_;case 35674:return Y_;case 35675:return Z_;case 35676:return $_;case 5124:case 35670:return J_;case 35667:case 35671:return K_;case 35668:case 35672:return Q_;case 35669:case 35673:return j_;case 5125:return e0;case 36294:return t0;case 36295:return n0;case 36296:return i0;case 35678:case 36198:case 36298:case 36306:case 35682:return s0;case 35679:case 36299:case 36307:return r0;case 35680:case 36300:case 36308:case 36293:return o0;case 36289:case 36303:case 36311:case 36292:return a0;}}var Fc=class{constructor(e,t,n){this.id=e,this.addr=n,this.cache=[],this.type=t.type,this.setValue=H_(t.type);}},Oc=class{constructor(e,t,n){this.id=e,this.addr=n,this.cache=[],this.type=t.type,this.size=t.size,this.setValue=l0(t.type);}},Bc=class{constructor(e){this.id=e,this.seq=[],this.map={};}setValue(e,t,n){let s=this.seq;for(let r=0,o=s.length;r!==o;++r){let a=s[r];a.setValue(e,t[a.id],n);}}},Nc=\/(\\w+)(\\])?(\\[|\\.)?\/g;function sd(i,e){i.seq.push(e),i.map[e.id]=e;}function c0(i,e,t){let n=i.name,s=n.length;for(Nc.lastIndex=0;;){var _guard690,_guard691;let r=Nc.exec(n),o=Nc.lastIndex,a=r[1],c=r[2]===\"]\",l=r[3];if(_guard690=c,_guard690?a=a|0:_guard690,l===void 0||(_guard691=l===\"[\",_guard691?o+2===s:_guard691)){sd(t,l===void 0?new Fc(a,i,e):new Oc(a,i,e));break;}else{var _guard692;let h=t.map[a];_guard692=h===void 0,_guard692?(h=new Bc(a),sd(t,h)):_guard692,t=h;}}}var bs=class{constructor(e,t){this.seq=[],this.map={};let n=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<n;++s){let r=e.getActiveUniform(t,s),o=e.getUniformLocation(t,r.name);c0(r,o,this);}}setValue(e,t,n,s){var _guard693;let r=this.map[t];_guard693=r!==void 0,_guard693?r.setValue(e,n,s):_guard693;}setOptional(e,t,n){var _guard694;let s=t[n];_guard694=s!==void 0,_guard694?this.setValue(e,n,s):_guard694;}static upload(e,t,n,s){for(let r=0,o=t.length;r!==o;++r){var _guard695;let a=t[r],c=n[a.id];_guard695=c.needsUpdate!==!1,_guard695?a.setValue(e,c.value,s):_guard695;}}static seqWithValue(e,t){let n=[];for(let s=0,r=e.length;s!==r;++s){var _guard696;let o=e[s];_guard696=o.id in t,_guard696?n.push(o):_guard696;}return n;}};function rd(i,e,t){let n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n;}var u0=37297,h0=0;function d0(i,e){let t=i.split(`\n`),n=[],s=Math.max(e-6,0),r=Math.min(e+6,t.length);for(let o=s;o<r;o++){let a=o+1;n.push(`${a===e?\">\":\" \"} ${a}: ${t[o]}`);}return n.join(`\n`);}var od=new Ye();function f0(i){rt._getMatrix(od,rt.workingColorSpace,i);let e=`mat3( ${od.elements.map(t=>t.toFixed(4))} )`;switch(rt.getTransfer(i)){case Ys:return[e,\"LinearTransferOETF\"];case ut:return[e,\"sRGBTransferOETF\"];default:return console.warn(\"THREE.WebGLProgram: Unsupported color space: \",i),[e,\"LinearTransferOETF\"];}}function ad(i,e,t){var _guard697;let n=i.getShaderParameter(e,i.COMPILE_STATUS),r=(i.getShaderInfoLog(e)||\"\").trim();if(_guard697=n,_guard697?r===\"\":_guard697)return\"\";let o=\/ERROR: 0:(\\d+)\/.exec(r);if(o){let a=parseInt(o[1]);return t.toUpperCase()+`\n\n`+r+`\n\n`+d0(i.getShaderSource(e),a);}else return r;}function p0(i,e){let t=f0(e);return[`vec4 ${i}( vec4 value ) {`,`\treturn ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,\"}\"].join(`\n`);}function m0(i,e){let t;switch(e){case Th:t=\"Linear\";break;case Eh:t=\"Reinhard\";break;case Ah:t=\"Cineon\";break;case ra:t=\"ACESFilmic\";break;case Ch:t=\"AgX\";break;case Rh:t=\"Neutral\";break;case wh:t=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e),t=\"Linear\";}return\"vec3 \"+i+\"( vec3 color ) { return \"+t+\"ToneMapping( color ); }\";}var Xa=new N();function g0(){rt.getLuminanceCoefficients(Xa);let i=Xa.x.toFixed(4),e=Xa.y.toFixed(4),t=Xa.z.toFixed(4);return[\"float luminance( const in vec3 rgb ) {\",`\tconst vec3 weights = vec3( ${i}, ${e}, ${t} );`,\"\treturn dot( weights, rgb );\",\"}\"].join(`\n`);}function _0(i){return[i.extensionClipCullDistance?\"#extension GL_ANGLE_clip_cull_distance : require\":\"\",i.extensionMultiDraw?\"#extension GL_ANGLE_multi_draw : require\":\"\"].filter(Er).join(`\n`);}function x0(i){let e=[];for(let t in i){var _guard698;let n=i[t];_guard698=n!==!1,_guard698?e.push(\"#define \"+t+\" \"+n):_guard698;}return e.join(`\n`);}function y0(i,e){let t={},n=i.getProgramParameter(e,i.ACTIVE_ATTRIBUTES);for(let s=0;s<n;s++){var _guard699,_guard700,_guard701;let r=i.getActiveAttrib(e,s),o=r.name,a=1;_guard699=r.type===i.FLOAT_MAT2,_guard699?a=2:_guard699,_guard700=r.type===i.FLOAT_MAT3,_guard700?a=3:_guard700,_guard701=r.type===i.FLOAT_MAT4,_guard701?a=4:_guard701,t[o]={type:r.type,location:i.getAttribLocation(e,o),locationSize:a};}return t;}function Er(i){return i!==\"\";}function ld(i,e){let t=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return i.replace(\/NUM_DIR_LIGHTS\/g,e.numDirLights).replace(\/NUM_SPOT_LIGHTS\/g,e.numSpotLights).replace(\/NUM_SPOT_LIGHT_MAPS\/g,e.numSpotLightMaps).replace(\/NUM_SPOT_LIGHT_COORDS\/g,t).replace(\/NUM_RECT_AREA_LIGHTS\/g,e.numRectAreaLights).replace(\/NUM_POINT_LIGHTS\/g,e.numPointLights).replace(\/NUM_HEMI_LIGHTS\/g,e.numHemiLights).replace(\/NUM_DIR_LIGHT_SHADOWS\/g,e.numDirLightShadows).replace(\/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS\/g,e.numSpotLightShadowsWithMaps).replace(\/NUM_SPOT_LIGHT_SHADOWS\/g,e.numSpotLightShadows).replace(\/NUM_POINT_LIGHT_SHADOWS\/g,e.numPointLightShadows);}function cd(i,e){return i.replace(\/NUM_CLIPPING_PLANES\/g,e.numClippingPlanes).replace(\/UNION_CLIPPING_PLANES\/g,e.numClippingPlanes-e.numClipIntersection);}var v0=\/^[ \\t]*#include +<([\\w\\d.\/]+)>\/gm;function zc(i){return i.replace(v0,S0);}var M0=new Map();function S0(i,e){let t=Qe[e];if(t===void 0){let n=M0.get(e);if(n!==void 0)t=Qe[n],console.warn('THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.',e,n);else throw new Error(\"Can not resolve #include <\"+e+\">\");}return zc(t);}var b0=\/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end\/g;function ud(i){return i.replace(b0,T0);}function T0(i,e,t,n){let s=\"\";for(let r=parseInt(e);r<parseInt(t);r++)s+=n.replace(\/\\[\\s*i\\s*\\]\/g,\"[ \"+r+\" ]\").replace(\/UNROLLED_LOOP_INDEX\/g,r);return s;}function hd(i){var _guard702;let e=`precision ${i.precision} float;\n\tprecision ${i.precision} int;\n\tprecision ${i.precision} sampler2D;\n\tprecision ${i.precision} samplerCube;\n\tprecision ${i.precision} sampler3D;\n\tprecision ${i.precision} sampler2DArray;\n\tprecision ${i.precision} sampler2DShadow;\n\tprecision ${i.precision} samplerCubeShadow;\n\tprecision ${i.precision} sampler2DArrayShadow;\n\tprecision ${i.precision} isampler2D;\n\tprecision ${i.precision} isampler3D;\n\tprecision ${i.precision} isamplerCube;\n\tprecision ${i.precision} isampler2DArray;\n\tprecision ${i.precision} usampler2D;\n\tprecision ${i.precision} usampler3D;\n\tprecision ${i.precision} usamplerCube;\n\tprecision ${i.precision} usampler2DArray;\n\t`;return i.precision===\"highp\"?e+=`\n#define HIGH_PRECISION`:i.precision===\"mediump\"?e+=`\n#define MEDIUM_PRECISION`:(_guard702=i.precision===\"lowp\",_guard702?e+=`\n#define LOW_PRECISION`:_guard702),e;}function E0(i){var _guard703;let e=\"SHADOWMAP_TYPE_BASIC\";return i.shadowMapType===ac?e=\"SHADOWMAP_TYPE_PCF\":i.shadowMapType===ih?e=\"SHADOWMAP_TYPE_PCF_SOFT\":(_guard703=i.shadowMapType===An,_guard703?e=\"SHADOWMAP_TYPE_VSM\":_guard703),e;}function A0(i){let e=\"ENVMAP_TYPE_CUBE\";if(i.envMap)switch(i.envMapMode){case Ni:case Fi:e=\"ENVMAP_TYPE_CUBE\";break;case xr:e=\"ENVMAP_TYPE_CUBE_UV\";break;}return e;}function w0(i){var _guard704,_guard705;let e=\"ENVMAP_MODE_REFLECTION\";return _guard705=(_guard704=i.envMap,_guard704?i.envMapMode===Fi:_guard704),_guard705?e=\"ENVMAP_MODE_REFRACTION\":_guard705,e;}function C0(i){let e=\"ENVMAP_BLENDING_NONE\";if(i.envMap)switch(i.combine){case hc:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case Sh:e=\"ENVMAP_BLENDING_MIX\";break;case bh:e=\"ENVMAP_BLENDING_ADD\";break;}return e;}function R0(i){let e=i.envMapCubeUVHeight;if(e===null)return null;let t=Math.log2(e)-2,n=1\/e;return{texelWidth:1\/(3*Math.max(Math.pow(2,t),112)),texelHeight:n,maxMip:t};}function I0(i,e,t,n){var _guard706,_guard707,_guard708,_guard709,_guard710,_guard711,_guard712,_guard713,_guard714,_guard715,_guard716;let s=i.getContext(),r=t.defines,o=t.vertexShader,a=t.fragmentShader,c=E0(t),l=A0(t),u=w0(t),h=C0(t),d=R0(t),f=_0(t),g=x0(r),_=s.createProgram(),m,p,E=t.glslVersion?\"#version \"+t.glslVersion+`\n`:\"\";t.isRawShaderMaterial?(m=[\"#define SHADER_TYPE \"+t.shaderType,\"#define SHADER_NAME \"+t.shaderName,g].filter(Er).join(`\n`),_guard706=m.length>0,_guard706?m+=`\n`:_guard706,p=[\"#define SHADER_TYPE \"+t.shaderType,\"#define SHADER_NAME \"+t.shaderName,g].filter(Er).join(`\n`),_guard707=p.length>0,_guard707?p+=`\n`:_guard707):(m=[hd(t),\"#define SHADER_TYPE \"+t.shaderType,\"#define SHADER_NAME \"+t.shaderName,g,t.extensionClipCullDistance?\"#define USE_CLIP_DISTANCE\":\"\",t.batching?\"#define USE_BATCHING\":\"\",t.batchingColor?\"#define USE_BATCHING_COLOR\":\"\",t.instancing?\"#define USE_INSTANCING\":\"\",t.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",t.instancingMorph?\"#define USE_INSTANCING_MORPH\":\"\",(_guard708=t.useFog,_guard708?t.fog:_guard708)?\"#define USE_FOG\":\"\",(_guard709=t.useFog,_guard709?t.fogExp2:_guard709)?\"#define FOG_EXP2\":\"\",t.map?\"#define USE_MAP\":\"\",t.envMap?\"#define USE_ENVMAP\":\"\",t.envMap?\"#define \"+u:\"\",t.lightMap?\"#define USE_LIGHTMAP\":\"\",t.aoMap?\"#define USE_AOMAP\":\"\",t.bumpMap?\"#define USE_BUMPMAP\":\"\",t.normalMap?\"#define USE_NORMALMAP\":\"\",t.normalMapObjectSpace?\"#define USE_NORMALMAP_OBJECTSPACE\":\"\",t.normalMapTangentSpace?\"#define USE_NORMALMAP_TANGENTSPACE\":\"\",t.displacementMap?\"#define USE_DISPLACEMENTMAP\":\"\",t.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",t.anisotropy?\"#define USE_ANISOTROPY\":\"\",t.anisotropyMap?\"#define USE_ANISOTROPYMAP\":\"\",t.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",t.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",t.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",t.iridescenceMap?\"#define USE_IRIDESCENCEMAP\":\"\",t.iridescenceThicknessMap?\"#define USE_IRIDESCENCE_THICKNESSMAP\":\"\",t.specularMap?\"#define USE_SPECULARMAP\":\"\",t.specularColorMap?\"#define USE_SPECULAR_COLORMAP\":\"\",t.specularIntensityMap?\"#define USE_SPECULAR_INTENSITYMAP\":\"\",t.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",t.metalnessMap?\"#define USE_METALNESSMAP\":\"\",t.alphaMap?\"#define USE_ALPHAMAP\":\"\",t.alphaHash?\"#define USE_ALPHAHASH\":\"\",t.transmission?\"#define USE_TRANSMISSION\":\"\",t.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",t.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",t.sheenColorMap?\"#define USE_SHEEN_COLORMAP\":\"\",t.sheenRoughnessMap?\"#define USE_SHEEN_ROUGHNESSMAP\":\"\",t.mapUv?\"#define MAP_UV \"+t.mapUv:\"\",t.alphaMapUv?\"#define ALPHAMAP_UV \"+t.alphaMapUv:\"\",t.lightMapUv?\"#define LIGHTMAP_UV \"+t.lightMapUv:\"\",t.aoMapUv?\"#define AOMAP_UV \"+t.aoMapUv:\"\",t.emissiveMapUv?\"#define EMISSIVEMAP_UV \"+t.emissiveMapUv:\"\",t.bumpMapUv?\"#define BUMPMAP_UV \"+t.bumpMapUv:\"\",t.normalMapUv?\"#define NORMALMAP_UV \"+t.normalMapUv:\"\",t.displacementMapUv?\"#define DISPLACEMENTMAP_UV \"+t.displacementMapUv:\"\",t.metalnessMapUv?\"#define METALNESSMAP_UV \"+t.metalnessMapUv:\"\",t.roughnessMapUv?\"#define ROUGHNESSMAP_UV \"+t.roughnessMapUv:\"\",t.anisotropyMapUv?\"#define ANISOTROPYMAP_UV \"+t.anisotropyMapUv:\"\",t.clearcoatMapUv?\"#define CLEARCOATMAP_UV \"+t.clearcoatMapUv:\"\",t.clearcoatNormalMapUv?\"#define CLEARCOAT_NORMALMAP_UV \"+t.clearcoatNormalMapUv:\"\",t.clearcoatRoughnessMapUv?\"#define CLEARCOAT_ROUGHNESSMAP_UV \"+t.clearcoatRoughnessMapUv:\"\",t.iridescenceMapUv?\"#define IRIDESCENCEMAP_UV \"+t.iridescenceMapUv:\"\",t.iridescenceThicknessMapUv?\"#define IRIDESCENCE_THICKNESSMAP_UV \"+t.iridescenceThicknessMapUv:\"\",t.sheenColorMapUv?\"#define SHEEN_COLORMAP_UV \"+t.sheenColorMapUv:\"\",t.sheenRoughnessMapUv?\"#define SHEEN_ROUGHNESSMAP_UV \"+t.sheenRoughnessMapUv:\"\",t.specularMapUv?\"#define SPECULARMAP_UV \"+t.specularMapUv:\"\",t.specularColorMapUv?\"#define SPECULAR_COLORMAP_UV \"+t.specularColorMapUv:\"\",t.specularIntensityMapUv?\"#define SPECULAR_INTENSITYMAP_UV \"+t.specularIntensityMapUv:\"\",t.transmissionMapUv?\"#define TRANSMISSIONMAP_UV \"+t.transmissionMapUv:\"\",t.thicknessMapUv?\"#define THICKNESSMAP_UV \"+t.thicknessMapUv:\"\",(_guard710=t.vertexTangents,_guard710?t.flatShading===!1:_guard710)?\"#define USE_TANGENT\":\"\",t.vertexColors?\"#define USE_COLOR\":\"\",t.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",t.vertexUv1s?\"#define USE_UV1\":\"\",t.vertexUv2s?\"#define USE_UV2\":\"\",t.vertexUv3s?\"#define USE_UV3\":\"\",t.pointsUvs?\"#define USE_POINTS_UV\":\"\",t.flatShading?\"#define FLAT_SHADED\":\"\",t.skinning?\"#define USE_SKINNING\":\"\",t.morphTargets?\"#define USE_MORPHTARGETS\":\"\",(_guard711=t.morphNormals,_guard711?t.flatShading===!1:_guard711)?\"#define USE_MORPHNORMALS\":\"\",t.morphColors?\"#define USE_MORPHCOLORS\":\"\",t.morphTargetsCount>0?\"#define MORPHTARGETS_TEXTURE_STRIDE \"+t.morphTextureStride:\"\",t.morphTargetsCount>0?\"#define MORPHTARGETS_COUNT \"+t.morphTargetsCount:\"\",t.doubleSided?\"#define DOUBLE_SIDED\":\"\",t.flipSided?\"#define FLIP_SIDED\":\"\",t.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",t.shadowMapEnabled?\"#define \"+c:\"\",t.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",t.numLightProbes>0?\"#define USE_LIGHT_PROBES\":\"\",t.logarithmicDepthBuffer?\"#define USE_LOGARITHMIC_DEPTH_BUFFER\":\"\",t.reversedDepthBuffer?\"#define USE_REVERSED_DEPTH_BUFFER\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\tattribute vec3 instanceColor;\",\"#endif\",\"#ifdef USE_INSTANCING_MORPH\",\"\tuniform sampler2D morphTexture;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_UV1\",\"\tattribute vec2 uv1;\",\"#endif\",\"#ifdef USE_UV2\",\"\tattribute vec2 uv2;\",\"#endif\",\"#ifdef USE_UV3\",\"\tattribute vec2 uv3;\",\"#endif\",\"#ifdef USE_TANGENT\",\"\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_SKINNING\",\"\tattribute vec4 skinIndex;\",\"\tattribute vec4 skinWeight;\",\"#endif\",`\n`].filter(Er).join(`\n`),p=[hd(t),\"#define SHADER_TYPE \"+t.shaderType,\"#define SHADER_NAME \"+t.shaderName,g,(_guard712=t.useFog,_guard712?t.fog:_guard712)?\"#define USE_FOG\":\"\",(_guard713=t.useFog,_guard713?t.fogExp2:_guard713)?\"#define FOG_EXP2\":\"\",t.alphaToCoverage?\"#define ALPHA_TO_COVERAGE\":\"\",t.map?\"#define USE_MAP\":\"\",t.matcap?\"#define USE_MATCAP\":\"\",t.envMap?\"#define USE_ENVMAP\":\"\",t.envMap?\"#define \"+l:\"\",t.envMap?\"#define \"+u:\"\",t.envMap?\"#define \"+h:\"\",d?\"#define CUBEUV_TEXEL_WIDTH \"+d.texelWidth:\"\",d?\"#define CUBEUV_TEXEL_HEIGHT \"+d.texelHeight:\"\",d?\"#define CUBEUV_MAX_MIP \"+d.maxMip+\".0\":\"\",t.lightMap?\"#define USE_LIGHTMAP\":\"\",t.aoMap?\"#define USE_AOMAP\":\"\",t.bumpMap?\"#define USE_BUMPMAP\":\"\",t.normalMap?\"#define USE_NORMALMAP\":\"\",t.normalMapObjectSpace?\"#define USE_NORMALMAP_OBJECTSPACE\":\"\",t.normalMapTangentSpace?\"#define USE_NORMALMAP_TANGENTSPACE\":\"\",t.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",t.anisotropy?\"#define USE_ANISOTROPY\":\"\",t.anisotropyMap?\"#define USE_ANISOTROPYMAP\":\"\",t.clearcoat?\"#define USE_CLEARCOAT\":\"\",t.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",t.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",t.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",t.dispersion?\"#define USE_DISPERSION\":\"\",t.iridescence?\"#define USE_IRIDESCENCE\":\"\",t.iridescenceMap?\"#define USE_IRIDESCENCEMAP\":\"\",t.iridescenceThicknessMap?\"#define USE_IRIDESCENCE_THICKNESSMAP\":\"\",t.specularMap?\"#define USE_SPECULARMAP\":\"\",t.specularColorMap?\"#define USE_SPECULAR_COLORMAP\":\"\",t.specularIntensityMap?\"#define USE_SPECULAR_INTENSITYMAP\":\"\",t.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",t.metalnessMap?\"#define USE_METALNESSMAP\":\"\",t.alphaMap?\"#define USE_ALPHAMAP\":\"\",t.alphaTest?\"#define USE_ALPHATEST\":\"\",t.alphaHash?\"#define USE_ALPHAHASH\":\"\",t.sheen?\"#define USE_SHEEN\":\"\",t.sheenColorMap?\"#define USE_SHEEN_COLORMAP\":\"\",t.sheenRoughnessMap?\"#define USE_SHEEN_ROUGHNESSMAP\":\"\",t.transmission?\"#define USE_TRANSMISSION\":\"\",t.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",t.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",(_guard714=t.vertexTangents,_guard714?t.flatShading===!1:_guard714)?\"#define USE_TANGENT\":\"\",t.vertexColors||t.instancingColor||t.batchingColor?\"#define USE_COLOR\":\"\",t.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",t.vertexUv1s?\"#define USE_UV1\":\"\",t.vertexUv2s?\"#define USE_UV2\":\"\",t.vertexUv3s?\"#define USE_UV3\":\"\",t.pointsUvs?\"#define USE_POINTS_UV\":\"\",t.gradientMap?\"#define USE_GRADIENTMAP\":\"\",t.flatShading?\"#define FLAT_SHADED\":\"\",t.doubleSided?\"#define DOUBLE_SIDED\":\"\",t.flipSided?\"#define FLIP_SIDED\":\"\",t.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",t.shadowMapEnabled?\"#define \"+c:\"\",t.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",t.numLightProbes>0?\"#define USE_LIGHT_PROBES\":\"\",t.decodeVideoTexture?\"#define DECODE_VIDEO_TEXTURE\":\"\",t.decodeVideoTextureEmissive?\"#define DECODE_VIDEO_TEXTURE_EMISSIVE\":\"\",t.logarithmicDepthBuffer?\"#define USE_LOGARITHMIC_DEPTH_BUFFER\":\"\",t.reversedDepthBuffer?\"#define USE_REVERSED_DEPTH_BUFFER\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",t.toneMapping!==$n?\"#define TONE_MAPPING\":\"\",t.toneMapping!==$n?Qe.tonemapping_pars_fragment:\"\",t.toneMapping!==$n?m0(\"toneMapping\",t.toneMapping):\"\",t.dithering?\"#define DITHERING\":\"\",t.opaque?\"#define OPAQUE\":\"\",Qe.colorspace_pars_fragment,p0(\"linearToOutputTexel\",t.outputColorSpace),g0(),t.useDepthPacking?\"#define DEPTH_PACKING \"+t.depthPacking:\"\",`\n`].filter(Er).join(`\n`)),o=zc(o),o=ld(o,t),o=cd(o,t),a=zc(a),a=ld(a,t),a=cd(a,t),o=ud(o),a=ud(a),_guard715=t.isRawShaderMaterial!==!0,_guard715?(E=`#version 300 es\n`,m=[f,\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(`\n`)+`\n`+m,p=[\"#define varying in\",t.glslVersion===bc?\"\":\"layout(location = 0) out highp vec4 pc_fragColor;\",t.glslVersion===bc?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(`\n`)+`\n`+p):_guard715;let T=E+m+o,y=E+p+a,R=rd(s,s.VERTEX_SHADER,T),w=rd(s,s.FRAGMENT_SHADER,y);s.attachShader(_,R),s.attachShader(_,w),t.index0AttributeName!==void 0?s.bindAttribLocation(_,0,t.index0AttributeName):(_guard716=t.morphTargets===!0,_guard716?s.bindAttribLocation(_,0,\"position\"):_guard716),s.linkProgram(_);function P(L){if(i.debug.checkShaderErrors){var _guard717,_guard718;let z=s.getProgramInfoLog(_)||\"\",$=s.getShaderInfoLog(R)||\"\",Q=s.getShaderInfoLog(w)||\"\",O=z.trim(),W=$.trim(),ae=Q.trim(),H=!0,q=!0;if(s.getProgramParameter(_,s.LINK_STATUS)===!1){if(H=!1,typeof i.debug.onShaderError==\"function\")i.debug.onShaderError(s,_,R,w);else{let ce=ad(s,R,\"vertex\"),ge=ad(s,w,\"fragment\");console.error(\"THREE.WebGLProgram: Shader Error \"+s.getError()+\" - VALIDATE_STATUS \"+s.getProgramParameter(_,s.VALIDATE_STATUS)+`\n\nMaterial Name: `+L.name+`\nMaterial Type: `+L.type+`\n\nProgram Info Log: `+O+`\n`+ce+`\n`+ge);}}else O!==\"\"?console.warn(\"THREE.WebGLProgram: Program Info Log:\",O):(_guard717=W===\"\"||ae===\"\",_guard717?q=!1:_guard717);_guard718=q,_guard718?L.diagnostics={runnable:H,programLog:O,vertexShader:{log:W,prefix:m},fragmentShader:{log:ae,prefix:p}}:_guard718;}s.deleteShader(R),s.deleteShader(w),F=new bs(s,_),M=y0(s,_);}let F;this.getUniforms=function(){var _guard719;return _guard719=F===void 0,_guard719?P(this):_guard719,F;};let M;this.getAttributes=function(){var _guard720;return _guard720=M===void 0,_guard720?P(this):_guard720,M;};let S=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){var _guard721;return _guard721=S===!1,_guard721?S=s.getProgramParameter(_,u0):_guard721,S;},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(_),this.program=void 0;},this.type=t.shaderType,this.name=t.shaderName,this.id=h0++,this.cacheKey=e,this.usedTimes=1,this.program=_,this.vertexShader=R,this.fragmentShader=w,this;}var P0=0,Vc=class{constructor(){this.shaderCache=new Map(),this.materialCache=new Map();}update(e){var _guard722,_guard723;let t=e.vertexShader,n=e.fragmentShader,s=this._getShaderStage(t),r=this._getShaderStage(n),o=this._getShaderCacheForMaterial(e);return _guard722=o.has(s)===!1,_guard722?(o.add(s),s.usedTimes++):_guard722,_guard723=o.has(r)===!1,_guard723?(o.add(r),r.usedTimes++):_guard723,this;}remove(e){let t=this.materialCache.get(e);for(let n of t){var _guard724;n.usedTimes--,_guard724=n.usedTimes===0,_guard724?this.shaderCache.delete(n.code):_guard724;}return this.materialCache.delete(e),this;}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id;}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id;}dispose(){this.shaderCache.clear(),this.materialCache.clear();}_getShaderCacheForMaterial(e){var _guard725;let t=this.materialCache,n=t.get(e);return _guard725=n===void 0,_guard725?(n=new Set(),t.set(e,n)):_guard725,n;}_getShaderStage(e){var _guard726;let t=this.shaderCache,n=t.get(e);return _guard726=n===void 0,_guard726?(n=new kc(e),t.set(e,n)):_guard726,n;}},kc=class{constructor(e){this.id=P0++,this.code=e,this.usedTimes=0;}};function D0(i,e,t,n,s,r,o){let a=new Qs(),c=new Vc(),l=new Set(),u=[],h=s.logarithmicDepthBuffer,d=s.vertexTextures,f=s.precision,g={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"};function _(M){return l.add(M),M===0?\"uv\":`uv${M}`;}function m(M,S,L,z,$){var _guard727,_guard728,_guard729,_guard730,_guard731,_guard732,_guard733,_guard734,_guard735,_guard736,_guard737,_guard738,_guard739,_guard740,_guard741,_guard742,_guard743,_guard744,_guard745,_guard746,_guard747,_guard748,_guard749,_guard750,_guard751,_guard752,_guard753,_guard754,_guard755,_guard756,_guard757,_guard758,_guard759,_guard760,_guard761,_guard762,_guard763,_guard764,_guard765,_guard766,_guard767,_guard768,_guard769,_guard770,_guard771,_guard772,_guard773,_guard774,_guard775,_guard776,_guard777,_guard778,_guard779,_guard780,_guard781,_guard782,_guard783,_guard784,_guard785,_guard786,_guard787,_guard788,_guard789,_guard790,_guard791,_guard792;let Q=z.fog,O=$.geometry,W=M.isMeshStandardMaterial?z.environment:null,ae=(M.isMeshStandardMaterial?t:e).get(M.envMap||W),H=(_guard727=ae,_guard727?ae.mapping===xr:_guard727)?ae.image.height:null,q=g[M.type];_guard729=M.precision!==null,_guard729?(f=s.getMaxPrecision(M.precision),_guard728=f!==M.precision,_guard728?console.warn(\"THREE.WebGLProgram.getParameters:\",M.precision,\"not supported, using\",f,\"instead.\"):_guard728):_guard729;let ce=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,ge=ce!==void 0?ce.length:0,Pe=0;_guard730=O.morphAttributes.position!==void 0,_guard730?Pe=1:_guard730,_guard731=O.morphAttributes.normal!==void 0,_guard731?Pe=2:_guard731,_guard732=O.morphAttributes.color!==void 0,_guard732?Pe=3:_guard732;let Fe,ve,Ie,J;if(q){let Ue=Rn[q];Fe=Ue.vertexShader,ve=Ue.fragmentShader;}else Fe=M.vertexShader,ve=M.fragmentShader,c.update(M),Ie=c.getVertexShaderID(M),J=c.getFragmentShaderID(M);let re=i.getRenderTarget(),pe=i.state.buffers.depth.getReversed(),me=$.isInstancedMesh===!0,Me=$.isBatchedMesh===!0,Ne=!!M.map,it=!!M.matcap,C=!!ae,tt=!!M.aoMap,De=!!M.lightMap,Ae=!!M.bumpMap,Se=!!M.normalMap,xe=!!M.displacementMap,le=!!M.emissiveMap,be=!!M.metalnessMap,Re=!!M.roughnessMap,Ve=M.anisotropy>0,b=M.clearcoat>0,x=M.dispersion>0,B=M.iridescence>0,A=M.sheen>0,I=M.transmission>0,D=(_guard733=Ve,_guard733?!!M.anisotropyMap:_guard733),X=(_guard734=b,_guard734?!!M.clearcoatMap:_guard734),G=(_guard735=b,_guard735?!!M.clearcoatNormalMap:_guard735),ie=(_guard736=b,_guard736?!!M.clearcoatRoughnessMap:_guard736),te=(_guard737=B,_guard737?!!M.iridescenceMap:_guard737),ne=(_guard738=B,_guard738?!!M.iridescenceThicknessMap:_guard738),oe=(_guard739=A,_guard739?!!M.sheenColorMap:_guard739),he=(_guard740=A,_guard740?!!M.sheenRoughnessMap:_guard740),fe=!!M.specularMap,ye=!!M.specularColorMap,ke=!!M.specularIntensityMap,U=(_guard741=I,_guard741?!!M.transmissionMap:_guard741),ee=(_guard742=I,_guard742?!!M.thicknessMap:_guard742),se=!!M.gradientMap,ue=!!M.alphaMap,Y=M.alphaTest>0,Z=!!M.alphaHash,_e=!!M.extensions,Le=$n;_guard744=(_guard743=M.toneMapped,_guard743?re===null||re.isXRRenderTarget===!0:_guard743),_guard744?Le=i.toneMapping:_guard744;let je={shaderID:q,shaderType:M.type,shaderName:M.name,vertexShader:Fe,fragmentShader:ve,defines:M.defines,customVertexShaderID:Ie,customFragmentShaderID:J,isRawShaderMaterial:M.isRawShaderMaterial===!0,glslVersion:M.glslVersion,precision:f,batching:Me,batchingColor:(_guard745=Me,_guard745?$._colorsTexture!==null:_guard745),instancing:me,instancingColor:(_guard746=me,_guard746?$.instanceColor!==null:_guard746),instancingMorph:(_guard747=me,_guard747?$.morphTexture!==null:_guard747),supportsVertexTextures:d,outputColorSpace:re===null?i.outputColorSpace:re.isXRRenderTarget===!0?re.texture.colorSpace:Ri,alphaToCoverage:!!M.alphaToCoverage,map:Ne,matcap:it,envMap:C,envMapMode:(_guard748=C,_guard748?ae.mapping:_guard748),envMapCubeUVHeight:H,aoMap:tt,lightMap:De,bumpMap:Ae,normalMap:Se,displacementMap:(_guard749=d,_guard749?xe:_guard749),emissiveMap:le,normalMapObjectSpace:(_guard750=Se,_guard750?M.normalMapType===Lh:_guard750),normalMapTangentSpace:(_guard751=Se,_guard751?M.normalMapType===Mc:_guard751),metalnessMap:be,roughnessMap:Re,anisotropy:Ve,anisotropyMap:D,clearcoat:b,clearcoatMap:X,clearcoatNormalMap:G,clearcoatRoughnessMap:ie,dispersion:x,iridescence:B,iridescenceMap:te,iridescenceThicknessMap:ne,sheen:A,sheenColorMap:oe,sheenRoughnessMap:he,specularMap:fe,specularColorMap:ye,specularIntensityMap:ke,transmission:I,transmissionMap:U,thicknessMap:ee,gradientMap:se,opaque:(_guard753=(_guard752=M.transparent===!1,_guard752?M.blending===wi:_guard752),_guard753?M.alphaToCoverage===!1:_guard753),alphaMap:ue,alphaTest:Y,alphaHash:Z,combine:M.combine,mapUv:(_guard754=Ne,_guard754?_(M.map.channel):_guard754),aoMapUv:(_guard755=tt,_guard755?_(M.aoMap.channel):_guard755),lightMapUv:(_guard756=De,_guard756?_(M.lightMap.channel):_guard756),bumpMapUv:(_guard757=Ae,_guard757?_(M.bumpMap.channel):_guard757),normalMapUv:(_guard758=Se,_guard758?_(M.normalMap.channel):_guard758),displacementMapUv:(_guard759=xe,_guard759?_(M.displacementMap.channel):_guard759),emissiveMapUv:(_guard760=le,_guard760?_(M.emissiveMap.channel):_guard760),metalnessMapUv:(_guard761=be,_guard761?_(M.metalnessMap.channel):_guard761),roughnessMapUv:(_guard762=Re,_guard762?_(M.roughnessMap.channel):_guard762),anisotropyMapUv:(_guard763=D,_guard763?_(M.anisotropyMap.channel):_guard763),clearcoatMapUv:(_guard764=X,_guard764?_(M.clearcoatMap.channel):_guard764),clearcoatNormalMapUv:(_guard765=G,_guard765?_(M.clearcoatNormalMap.channel):_guard765),clearcoatRoughnessMapUv:(_guard766=ie,_guard766?_(M.clearcoatRoughnessMap.channel):_guard766),iridescenceMapUv:(_guard767=te,_guard767?_(M.iridescenceMap.channel):_guard767),iridescenceThicknessMapUv:(_guard768=ne,_guard768?_(M.iridescenceThicknessMap.channel):_guard768),sheenColorMapUv:(_guard769=oe,_guard769?_(M.sheenColorMap.channel):_guard769),sheenRoughnessMapUv:(_guard770=he,_guard770?_(M.sheenRoughnessMap.channel):_guard770),specularMapUv:(_guard771=fe,_guard771?_(M.specularMap.channel):_guard771),specularColorMapUv:(_guard772=ye,_guard772?_(M.specularColorMap.channel):_guard772),specularIntensityMapUv:(_guard773=ke,_guard773?_(M.specularIntensityMap.channel):_guard773),transmissionMapUv:(_guard774=U,_guard774?_(M.transmissionMap.channel):_guard774),thicknessMapUv:(_guard775=ee,_guard775?_(M.thicknessMap.channel):_guard775),alphaMapUv:(_guard776=ue,_guard776?_(M.alphaMap.channel):_guard776),vertexTangents:(_guard777=!!O.attributes.tangent,_guard777?Se||Ve:_guard777),vertexColors:M.vertexColors,vertexAlphas:(_guard779=(_guard778=M.vertexColors===!0,_guard778?!!O.attributes.color:_guard778),_guard779?O.attributes.color.itemSize===4:_guard779),pointsUvs:(_guard781=(_guard780=$.isPoints===!0,_guard780?!!O.attributes.uv:_guard780),_guard781?Ne||ue:_guard781),fog:!!Q,useFog:M.fog===!0,fogExp2:(_guard782=!!Q,_guard782?Q.isFogExp2:_guard782),flatShading:(_guard783=M.flatShading===!0,_guard783?M.wireframe===!1:_guard783),sizeAttenuation:M.sizeAttenuation===!0,logarithmicDepthBuffer:h,reversedDepthBuffer:pe,skinning:$.isSkinnedMesh===!0,morphTargets:O.morphAttributes.position!==void 0,morphNormals:O.morphAttributes.normal!==void 0,morphColors:O.morphAttributes.color!==void 0,morphTargetsCount:ge,morphTextureStride:Pe,numDirLights:S.directional.length,numPointLights:S.point.length,numSpotLights:S.spot.length,numSpotLightMaps:S.spotLightMap.length,numRectAreaLights:S.rectArea.length,numHemiLights:S.hemi.length,numDirLightShadows:S.directionalShadowMap.length,numPointLightShadows:S.pointShadowMap.length,numSpotLightShadows:S.spotShadowMap.length,numSpotLightShadowsWithMaps:S.numSpotLightShadowsWithMaps,numLightProbes:S.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:M.dithering,shadowMapEnabled:(_guard784=i.shadowMap.enabled,_guard784?L.length>0:_guard784),shadowMapType:i.shadowMap.type,toneMapping:Le,decodeVideoTexture:(_guard786=(_guard785=Ne,_guard785?M.map.isVideoTexture===!0:_guard785),_guard786?rt.getTransfer(M.map.colorSpace)===ut:_guard786),decodeVideoTextureEmissive:(_guard788=(_guard787=le,_guard787?M.emissiveMap.isVideoTexture===!0:_guard787),_guard788?rt.getTransfer(M.emissiveMap.colorSpace)===ut:_guard788),premultipliedAlpha:M.premultipliedAlpha,doubleSided:M.side===wn,flipSided:M.side===Gt,useDepthPacking:M.depthPacking>=0,depthPacking:M.depthPacking||0,index0AttributeName:M.index0AttributeName,extensionClipCullDistance:(_guard790=(_guard789=_e,_guard789?M.extensions.clipCullDistance===!0:_guard789),_guard790?n.has(\"WEBGL_clip_cull_distance\"):_guard790),extensionMultiDraw:(_guard792=(_guard791=_e,_guard791?M.extensions.multiDraw===!0:_guard791)||Me,_guard792?n.has(\"WEBGL_multi_draw\"):_guard792),rendererExtensionParallelShaderCompile:n.has(\"KHR_parallel_shader_compile\"),customProgramCacheKey:M.customProgramCacheKey()};return je.vertexUv1s=l.has(1),je.vertexUv2s=l.has(2),je.vertexUv3s=l.has(3),l.clear(),je;}function p(M){var _guard793;let S=[];if(M.shaderID?S.push(M.shaderID):(S.push(M.customVertexShaderID),S.push(M.customFragmentShaderID)),M.defines!==void 0)for(let L in M.defines)S.push(L),S.push(M.defines[L]);return _guard793=M.isRawShaderMaterial===!1,_guard793?(E(S,M),T(S,M),S.push(i.outputColorSpace)):_guard793,S.push(M.customProgramCacheKey),S.join();}function E(M,S){M.push(S.precision),M.push(S.outputColorSpace),M.push(S.envMapMode),M.push(S.envMapCubeUVHeight),M.push(S.mapUv),M.push(S.alphaMapUv),M.push(S.lightMapUv),M.push(S.aoMapUv),M.push(S.bumpMapUv),M.push(S.normalMapUv),M.push(S.displacementMapUv),M.push(S.emissiveMapUv),M.push(S.metalnessMapUv),M.push(S.roughnessMapUv),M.push(S.anisotropyMapUv),M.push(S.clearcoatMapUv),M.push(S.clearcoatNormalMapUv),M.push(S.clearcoatRoughnessMapUv),M.push(S.iridescenceMapUv),M.push(S.iridescenceThicknessMapUv),M.push(S.sheenColorMapUv),M.push(S.sheenRoughnessMapUv),M.push(S.specularMapUv),M.push(S.specularColorMapUv),M.push(S.specularIntensityMapUv),M.push(S.transmissionMapUv),M.push(S.thicknessMapUv),M.push(S.combine),M.push(S.fogExp2),M.push(S.sizeAttenuation),M.push(S.morphTargetsCount),M.push(S.morphAttributeCount),M.push(S.numDirLights),M.push(S.numPointLights),M.push(S.numSpotLights),M.push(S.numSpotLightMaps),M.push(S.numHemiLights),M.push(S.numRectAreaLights),M.push(S.numDirLightShadows),M.push(S.numPointLightShadows),M.push(S.numSpotLightShadows),M.push(S.numSpotLightShadowsWithMaps),M.push(S.numLightProbes),M.push(S.shadowMapType),M.push(S.toneMapping),M.push(S.numClippingPlanes),M.push(S.numClipIntersection),M.push(S.depthPacking);}function T(M,S){var _guard794,_guard795,_guard796,_guard797,_guard798,_guard799,_guard800,_guard801,_guard802,_guard803,_guard804,_guard805,_guard806,_guard807,_guard808,_guard809,_guard810,_guard811,_guard812,_guard813,_guard814,_guard815,_guard816,_guard817,_guard818,_guard819,_guard820,_guard821,_guard822,_guard823,_guard824,_guard825,_guard826,_guard827,_guard828,_guard829,_guard830,_guard831,_guard832,_guard833,_guard834,_guard835,_guard836,_guard837,_guard838;a.disableAll(),_guard794=S.supportsVertexTextures,_guard794?a.enable(0):_guard794,_guard795=S.instancing,_guard795?a.enable(1):_guard795,_guard796=S.instancingColor,_guard796?a.enable(2):_guard796,_guard797=S.instancingMorph,_guard797?a.enable(3):_guard797,_guard798=S.matcap,_guard798?a.enable(4):_guard798,_guard799=S.envMap,_guard799?a.enable(5):_guard799,_guard800=S.normalMapObjectSpace,_guard800?a.enable(6):_guard800,_guard801=S.normalMapTangentSpace,_guard801?a.enable(7):_guard801,_guard802=S.clearcoat,_guard802?a.enable(8):_guard802,_guard803=S.iridescence,_guard803?a.enable(9):_guard803,_guard804=S.alphaTest,_guard804?a.enable(10):_guard804,_guard805=S.vertexColors,_guard805?a.enable(11):_guard805,_guard806=S.vertexAlphas,_guard806?a.enable(12):_guard806,_guard807=S.vertexUv1s,_guard807?a.enable(13):_guard807,_guard808=S.vertexUv2s,_guard808?a.enable(14):_guard808,_guard809=S.vertexUv3s,_guard809?a.enable(15):_guard809,_guard810=S.vertexTangents,_guard810?a.enable(16):_guard810,_guard811=S.anisotropy,_guard811?a.enable(17):_guard811,_guard812=S.alphaHash,_guard812?a.enable(18):_guard812,_guard813=S.batching,_guard813?a.enable(19):_guard813,_guard814=S.dispersion,_guard814?a.enable(20):_guard814,_guard815=S.batchingColor,_guard815?a.enable(21):_guard815,_guard816=S.gradientMap,_guard816?a.enable(22):_guard816,M.push(a.mask),a.disableAll(),_guard817=S.fog,_guard817?a.enable(0):_guard817,_guard818=S.useFog,_guard818?a.enable(1):_guard818,_guard819=S.flatShading,_guard819?a.enable(2):_guard819,_guard820=S.logarithmicDepthBuffer,_guard820?a.enable(3):_guard820,_guard821=S.reversedDepthBuffer,_guard821?a.enable(4):_guard821,_guard822=S.skinning,_guard822?a.enable(5):_guard822,_guard823=S.morphTargets,_guard823?a.enable(6):_guard823,_guard824=S.morphNormals,_guard824?a.enable(7):_guard824,_guard825=S.morphColors,_guard825?a.enable(8):_guard825,_guard826=S.premultipliedAlpha,_guard826?a.enable(9):_guard826,_guard827=S.shadowMapEnabled,_guard827?a.enable(10):_guard827,_guard828=S.doubleSided,_guard828?a.enable(11):_guard828,_guard829=S.flipSided,_guard829?a.enable(12):_guard829,_guard830=S.useDepthPacking,_guard830?a.enable(13):_guard830,_guard831=S.dithering,_guard831?a.enable(14):_guard831,_guard832=S.transmission,_guard832?a.enable(15):_guard832,_guard833=S.sheen,_guard833?a.enable(16):_guard833,_guard834=S.opaque,_guard834?a.enable(17):_guard834,_guard835=S.pointsUvs,_guard835?a.enable(18):_guard835,_guard836=S.decodeVideoTexture,_guard836?a.enable(19):_guard836,_guard837=S.decodeVideoTextureEmissive,_guard837?a.enable(20):_guard837,_guard838=S.alphaToCoverage,_guard838?a.enable(21):_guard838,M.push(a.mask);}function y(M){let S=g[M.type],L;if(S){let z=Rn[S];L=Wh.clone(z.uniforms);}else L=M.uniforms;return L;}function R(M,S){var _guard839;let L;for(let z=0,$=u.length;z<$;z++){let Q=u[z];if(Q.cacheKey===S){L=Q,++L.usedTimes;break;}}return _guard839=L===void 0,_guard839?(L=new I0(i,S,M,r),u.push(L)):_guard839,L;}function w(M){if(--M.usedTimes===0){let S=u.indexOf(M);u[S]=u[u.length-1],u.pop(),M.destroy();}}function P(M){c.remove(M);}function F(){c.dispose();}return{getParameters:m,getProgramCacheKey:p,getUniforms:y,acquireProgram:R,releaseProgram:w,releaseShaderCache:P,programs:u,dispose:F};}function L0(){let i=new WeakMap();function e(o){return i.has(o);}function t(o){var _guard840;let a=i.get(o);return _guard840=a===void 0,_guard840?(a={},i.set(o,a)):_guard840,a;}function n(o){i.delete(o);}function s(o,a,c){i.get(o)[a]=c;}function r(){i=new WeakMap();}return{has:e,get:t,remove:n,update:s,dispose:r};}function U0(i,e){return i.groupOrder!==e.groupOrder?i.groupOrder-e.groupOrder:i.renderOrder!==e.renderOrder?i.renderOrder-e.renderOrder:i.material.id!==e.material.id?i.material.id-e.material.id:i.z!==e.z?i.z-e.z:i.id-e.id;}function dd(i,e){return i.groupOrder!==e.groupOrder?i.groupOrder-e.groupOrder:i.renderOrder!==e.renderOrder?i.renderOrder-e.renderOrder:i.z!==e.z?e.z-i.z:i.id-e.id;}function fd(){let i=[],e=0,t=[],n=[],s=[];function r(){e=0,t.length=0,n.length=0,s.length=0;}function o(h,d,f,g,_,m){let p=i[e];return p===void 0?(p={id:h.id,object:h,geometry:d,material:f,groupOrder:g,renderOrder:h.renderOrder,z:_,group:m},i[e]=p):(p.id=h.id,p.object=h,p.geometry=d,p.material=f,p.groupOrder=g,p.renderOrder=h.renderOrder,p.z=_,p.group=m),e++,p;}function a(h,d,f,g,_,m){let p=o(h,d,f,g,_,m);f.transmission>0?n.push(p):f.transparent===!0?s.push(p):t.push(p);}function c(h,d,f,g,_,m){let p=o(h,d,f,g,_,m);f.transmission>0?n.unshift(p):f.transparent===!0?s.unshift(p):t.unshift(p);}function l(h,d){var _guard841,_guard842,_guard843;_guard841=t.length>1,_guard841?t.sort(h||U0):_guard841,_guard842=n.length>1,_guard842?n.sort(d||dd):_guard842,_guard843=s.length>1,_guard843?s.sort(d||dd):_guard843;}function u(){for(let h=e,d=i.length;h<d;h++){let f=i[h];if(f.id===null)break;f.id=null,f.object=null,f.geometry=null,f.material=null,f.group=null;}}return{opaque:t,transmissive:n,transparent:s,init:r,push:a,unshift:c,finish:u,sort:l};}function N0(){let i=new WeakMap();function e(n,s){let r=i.get(n),o;return r===void 0?(o=new fd(),i.set(n,[o])):s>=r.length?(o=new fd(),r.push(o)):o=r[s],o;}function t(){i=new WeakMap();}return{get:e,dispose:t};}function F0(){let i={};return{get:function(e){if(i[e.id]!==void 0)return i[e.id];let t;switch(e.type){case\"DirectionalLight\":t={direction:new N(),color:new $e()};break;case\"SpotLight\":t={position:new N(),direction:new N(),color:new $e(),distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":t={position:new N(),color:new $e(),distance:0,decay:0};break;case\"HemisphereLight\":t={direction:new N(),skyColor:new $e(),groundColor:new $e()};break;case\"RectAreaLight\":t={color:new $e(),position:new N(),halfWidth:new N(),halfHeight:new N()};break;}return i[e.id]=t,t;}};}function O0(){let i={};return{get:function(e){if(i[e.id]!==void 0)return i[e.id];let t;switch(e.type){case\"DirectionalLight\":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ze()};break;case\"SpotLight\":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ze()};break;case\"PointLight\":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ze(),shadowCameraNear:1,shadowCameraFar:1e3};break;}return i[e.id]=t,t;}};}var B0=0;function z0(i,e){return(e.castShadow?2:0)-(i.castShadow?2:0)+(e.map?1:0)-(i.map?1:0);}function V0(i){let e=new F0(),t=O0(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let l=0;l<9;l++)n.probe.push(new N());let s=new N(),r=new gt(),o=new gt();function a(l){var _guard847,_guard848;let u=0,h=0,d=0;for(let M=0;M<9;M++)n.probe[M].set(0,0,0);let f=0,g=0,_=0,m=0,p=0,E=0,T=0,y=0,R=0,w=0,P=0;l.sort(z0);for(let M=0,S=l.length;M<S;M++){var _guard844;let L=l[M],z=L.color,$=L.intensity,Q=L.distance,O=(_guard844=L.shadow,_guard844?L.shadow.map:_guard844)?L.shadow.map.texture:null;if(L.isAmbientLight)u+=z.r*$,h+=z.g*$,d+=z.b*$;else if(L.isLightProbe){for(let W=0;W<9;W++)n.probe[W].addScaledVector(L.sh.coefficients[W],$);P++;}else if(L.isDirectionalLight){let W=e.get(L);if(W.color.copy(L.color).multiplyScalar(L.intensity),L.castShadow){let ae=L.shadow,H=t.get(L);H.shadowIntensity=ae.intensity,H.shadowBias=ae.bias,H.shadowNormalBias=ae.normalBias,H.shadowRadius=ae.radius,H.shadowMapSize=ae.mapSize,n.directionalShadow[f]=H,n.directionalShadowMap[f]=O,n.directionalShadowMatrix[f]=L.shadow.matrix,E++;}n.directional[f]=W,f++;}else if(L.isSpotLight){var _guard845,_guard846;let W=e.get(L);W.position.setFromMatrixPosition(L.matrixWorld),W.color.copy(z).multiplyScalar($),W.distance=Q,W.coneCos=Math.cos(L.angle),W.penumbraCos=Math.cos(L.angle*(1-L.penumbra)),W.decay=L.decay,n.spot[_]=W;let ae=L.shadow;if(_guard846=L.map,_guard846?(n.spotLightMap[R]=L.map,R++,ae.updateMatrices(L),_guard845=L.castShadow,_guard845?w++:_guard845):_guard846,n.spotLightMatrix[_]=ae.matrix,L.castShadow){let H=t.get(L);H.shadowIntensity=ae.intensity,H.shadowBias=ae.bias,H.shadowNormalBias=ae.normalBias,H.shadowRadius=ae.radius,H.shadowMapSize=ae.mapSize,n.spotShadow[_]=H,n.spotShadowMap[_]=O,y++;}_++;}else if(L.isRectAreaLight){let W=e.get(L);W.color.copy(z).multiplyScalar($),W.halfWidth.set(L.width*.5,0,0),W.halfHeight.set(0,L.height*.5,0),n.rectArea[m]=W,m++;}else if(L.isPointLight){let W=e.get(L);if(W.color.copy(L.color).multiplyScalar(L.intensity),W.distance=L.distance,W.decay=L.decay,L.castShadow){let ae=L.shadow,H=t.get(L);H.shadowIntensity=ae.intensity,H.shadowBias=ae.bias,H.shadowNormalBias=ae.normalBias,H.shadowRadius=ae.radius,H.shadowMapSize=ae.mapSize,H.shadowCameraNear=ae.camera.near,H.shadowCameraFar=ae.camera.far,n.pointShadow[g]=H,n.pointShadowMap[g]=O,n.pointShadowMatrix[g]=L.shadow.matrix,T++;}n.point[g]=W,g++;}else if(L.isHemisphereLight){let W=e.get(L);W.skyColor.copy(L.color).multiplyScalar($),W.groundColor.copy(L.groundColor).multiplyScalar($),n.hemi[p]=W,p++;}}_guard847=m>0,_guard847?i.has(\"OES_texture_float_linear\")===!0?(n.rectAreaLTC1=Te.LTC_FLOAT_1,n.rectAreaLTC2=Te.LTC_FLOAT_2):(n.rectAreaLTC1=Te.LTC_HALF_1,n.rectAreaLTC2=Te.LTC_HALF_2):_guard847,n.ambient[0]=u,n.ambient[1]=h,n.ambient[2]=d;let F=n.hash;_guard848=F.directionalLength!==f||F.pointLength!==g||F.spotLength!==_||F.rectAreaLength!==m||F.hemiLength!==p||F.numDirectionalShadows!==E||F.numPointShadows!==T||F.numSpotShadows!==y||F.numSpotMaps!==R||F.numLightProbes!==P,_guard848?(n.directional.length=f,n.spot.length=_,n.rectArea.length=m,n.point.length=g,n.hemi.length=p,n.directionalShadow.length=E,n.directionalShadowMap.length=E,n.pointShadow.length=T,n.pointShadowMap.length=T,n.spotShadow.length=y,n.spotShadowMap.length=y,n.directionalShadowMatrix.length=E,n.pointShadowMatrix.length=T,n.spotLightMatrix.length=y+R-w,n.spotLightMap.length=R,n.numSpotLightShadowsWithMaps=w,n.numLightProbes=P,F.directionalLength=f,F.pointLength=g,F.spotLength=_,F.rectAreaLength=m,F.hemiLength=p,F.numDirectionalShadows=E,F.numPointShadows=T,F.numSpotShadows=y,F.numSpotMaps=R,F.numLightProbes=P,n.version=B0++):_guard848;}function c(l,u){let h=0,d=0,f=0,g=0,_=0,m=u.matrixWorldInverse;for(let p=0,E=l.length;p<E;p++){let T=l[p];if(T.isDirectionalLight){let y=n.directional[h];y.direction.setFromMatrixPosition(T.matrixWorld),s.setFromMatrixPosition(T.target.matrixWorld),y.direction.sub(s),y.direction.transformDirection(m),h++;}else if(T.isSpotLight){let y=n.spot[f];y.position.setFromMatrixPosition(T.matrixWorld),y.position.applyMatrix4(m),y.direction.setFromMatrixPosition(T.matrixWorld),s.setFromMatrixPosition(T.target.matrixWorld),y.direction.sub(s),y.direction.transformDirection(m),f++;}else if(T.isRectAreaLight){let y=n.rectArea[g];y.position.setFromMatrixPosition(T.matrixWorld),y.position.applyMatrix4(m),o.identity(),r.copy(T.matrixWorld),r.premultiply(m),o.extractRotation(r),y.halfWidth.set(T.width*.5,0,0),y.halfHeight.set(0,T.height*.5,0),y.halfWidth.applyMatrix4(o),y.halfHeight.applyMatrix4(o),g++;}else if(T.isPointLight){let y=n.point[d];y.position.setFromMatrixPosition(T.matrixWorld),y.position.applyMatrix4(m),d++;}else if(T.isHemisphereLight){let y=n.hemi[_];y.direction.setFromMatrixPosition(T.matrixWorld),y.direction.transformDirection(m),_++;}}}return{setup:a,setupView:c,state:n};}function pd(i){let e=new V0(i),t=[],n=[];function s(u){l.camera=u,t.length=0,n.length=0;}function r(u){t.push(u);}function o(u){n.push(u);}function a(){e.setup(t);}function c(u){e.setupView(t,u);}let l={lightsArray:t,shadowsArray:n,camera:null,lights:e,transmissionRenderTarget:{}};return{init:s,state:l,setupLights:a,setupLightsView:c,pushLight:r,pushShadow:o};}function k0(i){let e=new WeakMap();function t(s,r=0){let o=e.get(s),a;return o===void 0?(a=new pd(i),e.set(s,[a])):r>=o.length?(a=new pd(i),o.push(a)):a=o[r],a;}function n(){e=new WeakMap();}return{get:t,dispose:n};}var H0=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,G0=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 \/ ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) \/ resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) \/ resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean \/ samples;\n\tsquared_mean = squared_mean \/ samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}`;function W0(i,e,t){let n=new ds(),s=new ze(),r=new ze(),o=new vt(),a=new Vo({depthPacking:Dh}),c=new ko(),l={},u=t.maxTextureSize,h={[Wn]:Gt,[Gt]:Wn,[wn]:wn},d=new vn({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ze()},radius:{value:4}},vertexShader:H0,fragmentShader:G0}),f=d.clone();f.defines.HORIZONTAL_PASS=1;let g=new Ot();g.setAttribute(\"position\",new kt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let _=new Ht(g,d),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=ac;let p=this.type;this.render=function(w,P,F){var _guard849,_guard850,_guard851;if(m.enabled===!1||(_guard849=m.autoUpdate===!1,_guard849?m.needsUpdate===!1:_guard849)||w.length===0)return;let M=i.getRenderTarget(),S=i.getActiveCubeFace(),L=i.getActiveMipmapLevel(),z=i.state;z.setBlending(Zn),z.buffers.depth.getReversed()===!0?z.buffers.color.setClear(0,0,0,0):z.buffers.color.setClear(1,1,1,1),z.buffers.depth.setTest(!0),z.setScissorTest(!1);let $=(_guard850=p!==An,_guard850?this.type===An:_guard850),Q=(_guard851=p===An,_guard851?this.type!==An:_guard851);for(let O=0,W=w.length;O<W;O++){var _guard852,_guard853,_guard854,_guard855,_guard857,_guard858;let ae=w[O],H=ae.shadow;if(H===void 0){console.warn(\"THREE.WebGLShadowMap:\",ae,\"has no shadow.\");continue;}if(_guard852=H.autoUpdate===!1,_guard852?H.needsUpdate===!1:_guard852)continue;s.copy(H.mapSize);let q=H.getFrameExtents();if(s.multiply(q),r.copy(H.mapSize),_guard855=s.x>u||s.y>u,_guard855?(_guard853=s.x>u,_guard853?(r.x=Math.floor(u\/q.x),s.x=r.x*q.x,H.mapSize.x=r.x):_guard853,_guard854=s.y>u,_guard854?(r.y=Math.floor(u\/q.y),s.y=r.y*q.y,H.mapSize.y=r.y):_guard854):_guard855,H.map===null||$===!0||Q===!0){var _guard856;let ge=this.type!==An?{minFilter:an,magFilter:an}:{};_guard856=H.map!==null,_guard856?H.map.dispose():_guard856,H.map=new En(s.x,s.y,ge),H.map.texture.name=ae.name+\".shadowMap\",H.camera.updateProjectionMatrix();}i.setRenderTarget(H.map),i.clear();let ce=H.getViewportCount();for(let ge=0;ge<ce;ge++){let Pe=H.getViewport(ge);o.set(r.x*Pe.x,r.y*Pe.y,r.x*Pe.z,r.y*Pe.w),z.viewport(o),H.updateMatrices(ae,ge),n=H.getFrustum(),y(P,F,H.camera,ae,this.type);}_guard858=(_guard857=H.isPointLightShadow!==!0,_guard857?this.type===An:_guard857),_guard858?E(H,F):_guard858,H.needsUpdate=!1;}p=this.type,m.needsUpdate=!1,i.setRenderTarget(M,S,L);};function E(w,P){var _guard859,_guard860;let F=e.update(_);_guard859=d.defines.VSM_SAMPLES!==w.blurSamples,_guard859?(d.defines.VSM_SAMPLES=w.blurSamples,f.defines.VSM_SAMPLES=w.blurSamples,d.needsUpdate=!0,f.needsUpdate=!0):_guard859,_guard860=w.mapPass===null,_guard860?w.mapPass=new En(s.x,s.y):_guard860,d.uniforms.shadow_pass.value=w.map.texture,d.uniforms.resolution.value=w.mapSize,d.uniforms.radius.value=w.radius,i.setRenderTarget(w.mapPass),i.clear(),i.renderBufferDirect(P,null,F,d,_,null),f.uniforms.shadow_pass.value=w.mapPass.texture,f.uniforms.resolution.value=w.mapSize,f.uniforms.radius.value=w.radius,i.setRenderTarget(w.map),i.clear(),i.renderBufferDirect(P,null,F,f,_,null);}function T(w,P,F,M){var _guard861,_guard862,_guard863,_guard864,_guard865,_guard866,_guard869;let S=null,L=F.isPointLight===!0?w.customDistanceMaterial:w.customDepthMaterial;if(L!==void 0)S=L;else if(S=F.isPointLight===!0?c:a,(_guard863=(_guard862=(_guard861=i.localClippingEnabled,_guard861?P.clipShadows===!0:_guard861),_guard862?Array.isArray(P.clippingPlanes):_guard862),_guard863?P.clippingPlanes.length!==0:_guard863)||(_guard864=P.displacementMap,_guard864?P.displacementScale!==0:_guard864)||(_guard865=P.alphaMap,_guard865?P.alphaTest>0:_guard865)||(_guard866=P.map,_guard866?P.alphaTest>0:_guard866)||P.alphaToCoverage===!0){var _guard867,_guard868;let z=S.uuid,$=P.uuid,Q=l[z];_guard867=Q===void 0,_guard867?(Q={},l[z]=Q):_guard867;let O=Q[$];_guard868=O===void 0,_guard868?(O=S.clone(),Q[$]=O,P.addEventListener(\"dispose\",R)):_guard868,S=O;}if(S.visible=P.visible,S.wireframe=P.wireframe,M===An?S.side=P.shadowSide!==null?P.shadowSide:P.side:S.side=P.shadowSide!==null?P.shadowSide:h[P.side],S.alphaMap=P.alphaMap,S.alphaTest=P.alphaToCoverage===!0?.5:P.alphaTest,S.map=P.map,S.clipShadows=P.clipShadows,S.clippingPlanes=P.clippingPlanes,S.clipIntersection=P.clipIntersection,S.displacementMap=P.displacementMap,S.displacementScale=P.displacementScale,S.displacementBias=P.displacementBias,S.wireframeLinewidth=P.wireframeLinewidth,S.linewidth=P.linewidth,_guard869=F.isPointLight===!0,_guard869?S.isMeshDistanceMaterial===!0:_guard869){let z=i.properties.get(S);z.light=F;}return S;}function y(w,P,F,M,S){var _guard870,_guard871,_guard872,_guard873;if(w.visible===!1)return;if(_guard873=(_guard872=(_guard870=w.layers.test(P.layers),_guard870?w.isMesh||w.isLine||w.isPoints:_guard870),_guard872?w.castShadow||(_guard871=w.receiveShadow,_guard871?S===An:_guard871):_guard872),_guard873?!w.frustumCulled||n.intersectsObject(w):_guard873){w.modelViewMatrix.multiplyMatrices(F.matrixWorldInverse,w.matrixWorld);let $=e.update(w),Q=w.material;if(Array.isArray(Q)){let O=$.groups;for(let W=0,ae=O.length;W<ae;W++){var _guard874;let H=O[W],q=Q[H.materialIndex];if(_guard874=q,_guard874?q.visible:_guard874){let ce=T(w,q,M,S);w.onBeforeShadow(i,w,P,F,$,ce,H),i.renderBufferDirect(F,null,$,ce,w,H),w.onAfterShadow(i,w,P,F,$,ce,H);}}}else if(Q.visible){let O=T(w,Q,M,S);w.onBeforeShadow(i,w,P,F,$,O,null),i.renderBufferDirect(F,null,$,O,w,null),w.onAfterShadow(i,w,P,F,$,O,null);}}let z=w.children;for(let $=0,Q=z.length;$<Q;$++)y(z[$],P,F,M,S);}function R(w){w.target.removeEventListener(\"dispose\",R);for(let F in l){var _guard875;let M=l[F],S=w.target.uuid;_guard875=S in M,_guard875?(M[S].dispose(),delete M[S]):_guard875;}}}var X0={[Qo]:jo,[ea]:ia,[ta]:sa,[Ci]:na,[jo]:Qo,[ia]:ea,[sa]:ta,[na]:Ci};function q0(i,e){var _guard890;function t(){let U=!1,ee=new vt(),se=null,ue=new vt(0,0,0,0);return{setMask:function(Y){var _guard876,_guard877;_guard877=(_guard876=se!==Y,_guard876?!U:_guard876),_guard877?(i.colorMask(Y,Y,Y,Y),se=Y):_guard877;},setLocked:function(Y){U=Y;},setClear:function(Y,Z,_e,Le,je){var _guard878,_guard879;_guard878=je===!0,_guard878?(Y*=Le,Z*=Le,_e*=Le):_guard878,ee.set(Y,Z,_e,Le),_guard879=ue.equals(ee)===!1,_guard879?(i.clearColor(Y,Z,_e,Le),ue.copy(ee)):_guard879;},reset:function(){U=!1,se=null,ue.set(-1,0,0,0);}};}function n(){let U=!1,ee=!1,se=null,ue=null,Y=null;return{setReversed:function(Z){if(ee!==Z){let _e=e.get(\"EXT_clip_control\");Z?_e.clipControlEXT(_e.LOWER_LEFT_EXT,_e.ZERO_TO_ONE_EXT):_e.clipControlEXT(_e.LOWER_LEFT_EXT,_e.NEGATIVE_ONE_TO_ONE_EXT),ee=Z;let Le=Y;Y=null,this.setClear(Le);}},getReversed:function(){return ee;},setTest:function(Z){Z?re(i.DEPTH_TEST):pe(i.DEPTH_TEST);},setMask:function(Z){var _guard880,_guard881;_guard881=(_guard880=se!==Z,_guard880?!U:_guard880),_guard881?(i.depthMask(Z),se=Z):_guard881;},setFunc:function(Z){var _guard882;if(_guard882=ee,_guard882?Z=X0[Z]:_guard882,ue!==Z){switch(Z){case Qo:i.depthFunc(i.NEVER);break;case jo:i.depthFunc(i.ALWAYS);break;case ea:i.depthFunc(i.LESS);break;case Ci:i.depthFunc(i.LEQUAL);break;case ta:i.depthFunc(i.EQUAL);break;case na:i.depthFunc(i.GEQUAL);break;case ia:i.depthFunc(i.GREATER);break;case sa:i.depthFunc(i.NOTEQUAL);break;default:i.depthFunc(i.LEQUAL);}ue=Z;}},setLocked:function(Z){U=Z;},setClear:function(Z){var _guard883,_guard884;_guard884=Y!==Z,_guard884?(_guard883=ee,_guard883?Z=1-Z:_guard883,i.clearDepth(Z),Y=Z):_guard884;},reset:function(){U=!1,se=null,ue=null,Y=null,ee=!1;}};}function s(){let U=!1,ee=null,se=null,ue=null,Y=null,Z=null,_e=null,Le=null,je=null;return{setTest:function(Ue){U||(Ue?re(i.STENCIL_TEST):pe(i.STENCIL_TEST));},setMask:function(Ue){var _guard885,_guard886;_guard886=(_guard885=ee!==Ue,_guard885?!U:_guard885),_guard886?(i.stencilMask(Ue),ee=Ue):_guard886;},setFunc:function(Ue,Mt,Ge){var _guard887;_guard887=se!==Ue||ue!==Mt||Y!==Ge,_guard887?(i.stencilFunc(Ue,Mt,Ge),se=Ue,ue=Mt,Y=Ge):_guard887;},setOp:function(Ue,Mt,Ge){var _guard888;_guard888=Z!==Ue||_e!==Mt||Le!==Ge,_guard888?(i.stencilOp(Ue,Mt,Ge),Z=Ue,_e=Mt,Le=Ge):_guard888;},setLocked:function(Ue){U=Ue;},setClear:function(Ue){var _guard889;_guard889=je!==Ue,_guard889?(i.clearStencil(Ue),je=Ue):_guard889;},reset:function(){U=!1,ee=null,se=null,ue=null,Y=null,Z=null,_e=null,Le=null,je=null;}};}let r=new t(),o=new n(),a=new s(),c=new WeakMap(),l=new WeakMap(),u={},h={},d=new WeakMap(),f=[],g=null,_=!1,m=null,p=null,E=null,T=null,y=null,R=null,w=null,P=new $e(0,0,0),F=0,M=!1,S=null,L=null,z=null,$=null,Q=null,O=i.getParameter(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),W=!1,ae=0,H=i.getParameter(i.VERSION);H.indexOf(\"WebGL\")!==-1?(ae=parseFloat(\/^WebGL (\\d)\/.exec(H)[1]),W=ae>=1):(_guard890=H.indexOf(\"OpenGL ES\")!==-1,_guard890?(ae=parseFloat(\/^OpenGL ES (\\d)\/.exec(H)[1]),W=ae>=2):_guard890);let q=null,ce={},ge=i.getParameter(i.SCISSOR_BOX),Pe=i.getParameter(i.VIEWPORT),Fe=new vt().fromArray(ge),ve=new vt().fromArray(Pe);function Ie(U,ee,se,ue){let Y=new Uint8Array(4),Z=i.createTexture();i.bindTexture(U,Z),i.texParameteri(U,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(U,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let _e=0;_e<se;_e++)U===i.TEXTURE_3D||U===i.TEXTURE_2D_ARRAY?i.texImage3D(ee,0,i.RGBA,1,1,ue,0,i.RGBA,i.UNSIGNED_BYTE,Y):i.texImage2D(ee+_e,0,i.RGBA,1,1,0,i.RGBA,i.UNSIGNED_BYTE,Y);return Z;}let J={};J[i.TEXTURE_2D]=Ie(i.TEXTURE_2D,i.TEXTURE_2D,1),J[i.TEXTURE_CUBE_MAP]=Ie(i.TEXTURE_CUBE_MAP,i.TEXTURE_CUBE_MAP_POSITIVE_X,6),J[i.TEXTURE_2D_ARRAY]=Ie(i.TEXTURE_2D_ARRAY,i.TEXTURE_2D_ARRAY,1,1),J[i.TEXTURE_3D]=Ie(i.TEXTURE_3D,i.TEXTURE_3D,1,1),r.setClear(0,0,0,1),o.setClear(1),a.setClear(0),re(i.DEPTH_TEST),o.setFunc(Ci),Ae(!1),Se(oc),re(i.CULL_FACE),tt(Zn);function re(U){var _guard891;_guard891=u[U]!==!0,_guard891?(i.enable(U),u[U]=!0):_guard891;}function pe(U){var _guard892;_guard892=u[U]!==!1,_guard892?(i.disable(U),u[U]=!1):_guard892;}function me(U,ee){var _guard893,_guard894;return h[U]!==ee?(i.bindFramebuffer(U,ee),h[U]=ee,_guard893=U===i.DRAW_FRAMEBUFFER,_guard893?h[i.FRAMEBUFFER]=ee:_guard893,_guard894=U===i.FRAMEBUFFER,_guard894?h[i.DRAW_FRAMEBUFFER]=ee:_guard894,!0):!1;}function Me(U,ee){var _guard896,_guard897;let se=f,ue=!1;if(U){var _guard895;se=d.get(ee),_guard895=se===void 0,_guard895?(se=[],d.set(ee,se)):_guard895;let Y=U.textures;if(se.length!==Y.length||se[0]!==i.COLOR_ATTACHMENT0){for(let Z=0,_e=Y.length;Z<_e;Z++)se[Z]=i.COLOR_ATTACHMENT0+Z;se.length=Y.length,ue=!0;}}else _guard896=se[0]!==i.BACK,_guard896?(se[0]=i.BACK,ue=!0):_guard896;_guard897=ue,_guard897?i.drawBuffers(se):_guard897;}function Ne(U){return g!==U?(i.useProgram(U),g=U,!0):!1;}let it={[ui]:i.FUNC_ADD,[rh]:i.FUNC_SUBTRACT,[oh]:i.FUNC_REVERSE_SUBTRACT};it[ah]=i.MIN,it[lh]=i.MAX;let C={[ch]:i.ZERO,[uh]:i.ONE,[hh]:i.SRC_COLOR,[yo]:i.SRC_ALPHA,[_h]:i.SRC_ALPHA_SATURATE,[mh]:i.DST_COLOR,[fh]:i.DST_ALPHA,[dh]:i.ONE_MINUS_SRC_COLOR,[vo]:i.ONE_MINUS_SRC_ALPHA,[gh]:i.ONE_MINUS_DST_COLOR,[ph]:i.ONE_MINUS_DST_ALPHA,[xh]:i.CONSTANT_COLOR,[yh]:i.ONE_MINUS_CONSTANT_COLOR,[vh]:i.CONSTANT_ALPHA,[Mh]:i.ONE_MINUS_CONSTANT_ALPHA};function tt(U,ee,se,ue,Y,Z,_e,Le,je,Ue){var _guard899,_guard901,_guard902,_guard903;if(U===Zn){var _guard898;_guard898=_===!0,_guard898?(pe(i.BLEND),_=!1):_guard898;return;}if(_guard899=_===!1,_guard899?(re(i.BLEND),_=!0):_guard899,U!==sh){if(U!==m||Ue!==M){var _guard900;if(_guard900=p!==ui||y!==ui,_guard900?(i.blendEquation(i.FUNC_ADD),p=ui,y=ui):_guard900,Ue)switch(U){case wi:i.blendFuncSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA);break;case lc:i.blendFunc(i.ONE,i.ONE);break;case cc:i.blendFuncSeparate(i.ZERO,i.ONE_MINUS_SRC_COLOR,i.ZERO,i.ONE);break;case uc:i.blendFuncSeparate(i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ZERO,i.ONE);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",U);break;}else switch(U){case wi:i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA);break;case lc:i.blendFuncSeparate(i.SRC_ALPHA,i.ONE,i.ONE,i.ONE);break;case cc:console.error(\"THREE.WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true\");break;case uc:console.error(\"THREE.WebGLState: MultiplyBlending requires material.premultipliedAlpha = true\");break;default:console.error(\"THREE.WebGLState: Invalid blending: \",U);break;}E=null,T=null,R=null,w=null,P.set(0,0,0),F=0,m=U,M=Ue;}return;}Y=Y||ee,Z=Z||se,_e=_e||ue,_guard901=ee!==p||Y!==y,_guard901?(i.blendEquationSeparate(it[ee],it[Y]),p=ee,y=Y):_guard901,_guard902=se!==E||ue!==T||Z!==R||_e!==w,_guard902?(i.blendFuncSeparate(C[se],C[ue],C[Z],C[_e]),E=se,T=ue,R=Z,w=_e):_guard902,_guard903=Le.equals(P)===!1||je!==F,_guard903?(i.blendColor(Le.r,Le.g,Le.b,je),P.copy(Le),F=je):_guard903,m=U,M=!1;}function De(U,ee){var _guard904,_guard905,_guard906;U.side===wn?pe(i.CULL_FACE):re(i.CULL_FACE);let se=U.side===Gt;_guard904=ee,_guard904?se=!se:_guard904,Ae(se),(_guard905=U.blending===wi,_guard905?U.transparent===!1:_guard905)?tt(Zn):tt(U.blending,U.blendEquation,U.blendSrc,U.blendDst,U.blendEquationAlpha,U.blendSrcAlpha,U.blendDstAlpha,U.blendColor,U.blendAlpha,U.premultipliedAlpha),o.setFunc(U.depthFunc),o.setTest(U.depthTest),o.setMask(U.depthWrite),r.setMask(U.colorWrite);let ue=U.stencilWrite;a.setTest(ue),_guard906=ue,_guard906?(a.setMask(U.stencilWriteMask),a.setFunc(U.stencilFunc,U.stencilRef,U.stencilFuncMask),a.setOp(U.stencilFail,U.stencilZFail,U.stencilZPass)):_guard906,le(U.polygonOffset,U.polygonOffsetFactor,U.polygonOffsetUnits),U.alphaToCoverage===!0?re(i.SAMPLE_ALPHA_TO_COVERAGE):pe(i.SAMPLE_ALPHA_TO_COVERAGE);}function Ae(U){var _guard907;_guard907=S!==U,_guard907?(U?i.frontFace(i.CW):i.frontFace(i.CCW),S=U):_guard907;}function Se(U){var _guard908;U!==th?(re(i.CULL_FACE),_guard908=U!==L,_guard908?U===oc?i.cullFace(i.BACK):U===nh?i.cullFace(i.FRONT):i.cullFace(i.FRONT_AND_BACK):_guard908):pe(i.CULL_FACE),L=U;}function xe(U){var _guard909,_guard910;_guard910=U!==z,_guard910?(_guard909=W,_guard909?i.lineWidth(U):_guard909,z=U):_guard910;}function le(U,ee,se){var _guard911;U?(re(i.POLYGON_OFFSET_FILL),_guard911=$!==ee||Q!==se,_guard911?(i.polygonOffset(ee,se),$=ee,Q=se):_guard911):pe(i.POLYGON_OFFSET_FILL);}function be(U){U?re(i.SCISSOR_TEST):pe(i.SCISSOR_TEST);}function Re(U){var _guard912,_guard913;_guard912=U===void 0,_guard912?U=i.TEXTURE0+O-1:_guard912,_guard913=q!==U,_guard913?(i.activeTexture(U),q=U):_guard913;}function Ve(U,ee,se){var _guard914,_guard915,_guard916,_guard917;_guard914=se===void 0,_guard914?q===null?se=i.TEXTURE0+O-1:se=q:_guard914;let ue=ce[se];_guard915=ue===void 0,_guard915?(ue={type:void 0,texture:void 0},ce[se]=ue):_guard915,_guard917=ue.type!==U||ue.texture!==ee,_guard917?(_guard916=q!==se,_guard916?(i.activeTexture(se),q=se):_guard916,i.bindTexture(U,ee||J[U]),ue.type=U,ue.texture=ee):_guard917;}function b(){var _guard918,_guard919;let U=ce[q];_guard919=(_guard918=U!==void 0,_guard918?U.type!==void 0:_guard918),_guard919?(i.bindTexture(U.type,null),U.type=void 0,U.texture=void 0):_guard919;}function x(){try{i.compressedTexImage2D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function B(){try{i.compressedTexImage3D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function A(){try{i.texSubImage2D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function I(){try{i.texSubImage3D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function D(){try{i.compressedTexSubImage2D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function X(){try{i.compressedTexSubImage3D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function G(){try{i.texStorage2D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function ie(){try{i.texStorage3D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function te(){try{i.texImage2D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function ne(){try{i.texImage3D(...arguments);}catch(U){console.error(\"THREE.WebGLState:\",U);}}function oe(U){var _guard920;_guard920=Fe.equals(U)===!1,_guard920?(i.scissor(U.x,U.y,U.z,U.w),Fe.copy(U)):_guard920;}function he(U){var _guard921;_guard921=ve.equals(U)===!1,_guard921?(i.viewport(U.x,U.y,U.z,U.w),ve.copy(U)):_guard921;}function fe(U,ee){var _guard922,_guard923;let se=l.get(ee);_guard922=se===void 0,_guard922?(se=new WeakMap(),l.set(ee,se)):_guard922;let ue=se.get(U);_guard923=ue===void 0,_guard923?(ue=i.getUniformBlockIndex(ee,U.name),se.set(U,ue)):_guard923;}function ye(U,ee){var _guard924;let ue=l.get(ee).get(U);_guard924=c.get(ee)!==ue,_guard924?(i.uniformBlockBinding(ee,ue,U.__bindingPointIndex),c.set(ee,ue)):_guard924;}function ke(){i.disable(i.BLEND),i.disable(i.CULL_FACE),i.disable(i.DEPTH_TEST),i.disable(i.POLYGON_OFFSET_FILL),i.disable(i.SCISSOR_TEST),i.disable(i.STENCIL_TEST),i.disable(i.SAMPLE_ALPHA_TO_COVERAGE),i.blendEquation(i.FUNC_ADD),i.blendFunc(i.ONE,i.ZERO),i.blendFuncSeparate(i.ONE,i.ZERO,i.ONE,i.ZERO),i.blendColor(0,0,0,0),i.colorMask(!0,!0,!0,!0),i.clearColor(0,0,0,0),i.depthMask(!0),i.depthFunc(i.LESS),o.setReversed(!1),i.clearDepth(1),i.stencilMask(4294967295),i.stencilFunc(i.ALWAYS,0,4294967295),i.stencilOp(i.KEEP,i.KEEP,i.KEEP),i.clearStencil(0),i.cullFace(i.BACK),i.frontFace(i.CCW),i.polygonOffset(0,0),i.activeTexture(i.TEXTURE0),i.bindFramebuffer(i.FRAMEBUFFER,null),i.bindFramebuffer(i.DRAW_FRAMEBUFFER,null),i.bindFramebuffer(i.READ_FRAMEBUFFER,null),i.useProgram(null),i.lineWidth(1),i.scissor(0,0,i.canvas.width,i.canvas.height),i.viewport(0,0,i.canvas.width,i.canvas.height),u={},q=null,ce={},h={},d=new WeakMap(),f=[],g=null,_=!1,m=null,p=null,E=null,T=null,y=null,R=null,w=null,P=new $e(0,0,0),F=0,M=!1,S=null,L=null,z=null,$=null,Q=null,Fe.set(0,0,i.canvas.width,i.canvas.height),ve.set(0,0,i.canvas.width,i.canvas.height),r.reset(),o.reset(),a.reset();}return{buffers:{color:r,depth:o,stencil:a},enable:re,disable:pe,bindFramebuffer:me,drawBuffers:Me,useProgram:Ne,setBlending:tt,setMaterial:De,setFlipSided:Ae,setCullFace:Se,setLineWidth:xe,setPolygonOffset:le,setScissorTest:be,activeTexture:Re,bindTexture:Ve,unbindTexture:b,compressedTexImage2D:x,compressedTexImage3D:B,texImage2D:te,texImage3D:ne,updateUBOMapping:fe,uniformBlockBinding:ye,texStorage2D:G,texStorage3D:ie,texSubImage2D:A,texSubImage3D:I,compressedTexSubImage2D:D,compressedTexSubImage3D:X,scissor:oe,viewport:he,reset:ke};}function Y0(i,e,t,n,s,r,o){let a=e.has(\"WEBGL_multisampled_render_to_texture\")?e.get(\"WEBGL_multisampled_render_to_texture\"):null,c=typeof navigator>\"u\"?!1:\/OculusBrowser\/g.test(navigator.userAgent),l=new ze(),u=new WeakMap(),h,d=new WeakMap(),f=!1;try{var _guard925;f=(_guard925=typeof OffscreenCanvas<\"u\",_guard925?new OffscreenCanvas(1,1).getContext(\"2d\")!==null:_guard925);}catch{}function g(b,x){return f?new OffscreenCanvas(b,x):$s(\"canvas\");}function _(b,x,B){var _guard926,_guard927,_guard928,_guard929,_guard930,_guard932;let A=1,I=Ve(b);if(_guard926=I.width>B||I.height>B,_guard926?A=B\/Math.max(I.width,I.height):_guard926,A<1)if((_guard927=typeof HTMLImageElement<\"u\",_guard927?b instanceof HTMLImageElement:_guard927)||(_guard928=typeof HTMLCanvasElement<\"u\",_guard928?b instanceof HTMLCanvasElement:_guard928)||(_guard929=typeof ImageBitmap<\"u\",_guard929?b instanceof ImageBitmap:_guard929)||(_guard930=typeof VideoFrame<\"u\",_guard930?b instanceof VideoFrame:_guard930)){var _guard931;let D=Math.floor(A*I.width),X=Math.floor(A*I.height);_guard931=h===void 0,_guard931?h=g(D,X):_guard931;let G=x?g(D,X):h;return G.width=D,G.height=X,G.getContext(\"2d\").drawImage(b,0,0,D,X),console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+I.width+\"x\"+I.height+\") to (\"+D+\"x\"+X+\").\"),G;}else return _guard932=\"data\"in b,_guard932?console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+I.width+\"x\"+I.height+\").\"):_guard932,b;return b;}function m(b){return b.generateMipmaps;}function p(b){i.generateMipmap(b);}function E(b){return b.isWebGLCubeRenderTarget?i.TEXTURE_CUBE_MAP:b.isWebGL3DRenderTarget?i.TEXTURE_3D:b.isWebGLArrayRenderTarget||b.isCompressedArrayTexture?i.TEXTURE_2D_ARRAY:i.TEXTURE_2D;}function T(b,x,B,A,I=!1){var _guard933,_guard934,_guard935,_guard936,_guard937,_guard938,_guard939,_guard940,_guard941,_guard942,_guard943,_guard944,_guard945,_guard946,_guard947,_guard948,_guard949,_guard950,_guard951,_guard952,_guard953,_guard954,_guard955,_guard956,_guard957,_guard958,_guard959,_guard960,_guard961,_guard962,_guard963,_guard964,_guard965,_guard966,_guard967,_guard968,_guard969,_guard970,_guard971,_guard977;if(b!==null){if(i[b]!==void 0)return i[b];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+b+\"'\");}let D=x;if(_guard936=x===i.RED,_guard936?(_guard933=B===i.FLOAT,_guard933?D=i.R32F:_guard933,_guard934=B===i.HALF_FLOAT,_guard934?D=i.R16F:_guard934,_guard935=B===i.UNSIGNED_BYTE,_guard935?D=i.R8:_guard935):_guard936,_guard943=x===i.RED_INTEGER,_guard943?(_guard937=B===i.UNSIGNED_BYTE,_guard937?D=i.R8UI:_guard937,_guard938=B===i.UNSIGNED_SHORT,_guard938?D=i.R16UI:_guard938,_guard939=B===i.UNSIGNED_INT,_guard939?D=i.R32UI:_guard939,_guard940=B===i.BYTE,_guard940?D=i.R8I:_guard940,_guard941=B===i.SHORT,_guard941?D=i.R16I:_guard941,_guard942=B===i.INT,_guard942?D=i.R32I:_guard942):_guard943,_guard947=x===i.RG,_guard947?(_guard944=B===i.FLOAT,_guard944?D=i.RG32F:_guard944,_guard945=B===i.HALF_FLOAT,_guard945?D=i.RG16F:_guard945,_guard946=B===i.UNSIGNED_BYTE,_guard946?D=i.RG8:_guard946):_guard947,_guard954=x===i.RG_INTEGER,_guard954?(_guard948=B===i.UNSIGNED_BYTE,_guard948?D=i.RG8UI:_guard948,_guard949=B===i.UNSIGNED_SHORT,_guard949?D=i.RG16UI:_guard949,_guard950=B===i.UNSIGNED_INT,_guard950?D=i.RG32UI:_guard950,_guard951=B===i.BYTE,_guard951?D=i.RG8I:_guard951,_guard952=B===i.SHORT,_guard952?D=i.RG16I:_guard952,_guard953=B===i.INT,_guard953?D=i.RG32I:_guard953):_guard954,_guard961=x===i.RGB_INTEGER,_guard961?(_guard955=B===i.UNSIGNED_BYTE,_guard955?D=i.RGB8UI:_guard955,_guard956=B===i.UNSIGNED_SHORT,_guard956?D=i.RGB16UI:_guard956,_guard957=B===i.UNSIGNED_INT,_guard957?D=i.RGB32UI:_guard957,_guard958=B===i.BYTE,_guard958?D=i.RGB8I:_guard958,_guard959=B===i.SHORT,_guard959?D=i.RGB16I:_guard959,_guard960=B===i.INT,_guard960?D=i.RGB32I:_guard960):_guard961,_guard968=x===i.RGBA_INTEGER,_guard968?(_guard962=B===i.UNSIGNED_BYTE,_guard962?D=i.RGBA8UI:_guard962,_guard963=B===i.UNSIGNED_SHORT,_guard963?D=i.RGBA16UI:_guard963,_guard964=B===i.UNSIGNED_INT,_guard964?D=i.RGBA32UI:_guard964,_guard965=B===i.BYTE,_guard965?D=i.RGBA8I:_guard965,_guard966=B===i.SHORT,_guard966?D=i.RGBA16I:_guard966,_guard967=B===i.INT,_guard967?D=i.RGBA32I:_guard967):_guard968,_guard971=x===i.RGB,_guard971?(_guard969=B===i.UNSIGNED_INT_5_9_9_9_REV,_guard969?D=i.RGB9_E5:_guard969,_guard970=B===i.UNSIGNED_INT_10F_11F_11F_REV,_guard970?D=i.R11F_G11F_B10F:_guard970):_guard971,x===i.RGBA){var _guard972,_guard973,_guard974,_guard975,_guard976;let X=I?Ys:rt.getTransfer(A);_guard972=B===i.FLOAT,_guard972?D=i.RGBA32F:_guard972,_guard973=B===i.HALF_FLOAT,_guard973?D=i.RGBA16F:_guard973,_guard974=B===i.UNSIGNED_BYTE,_guard974?D=X===ut?i.SRGB8_ALPHA8:i.RGBA8:_guard974,_guard975=B===i.UNSIGNED_SHORT_4_4_4_4,_guard975?D=i.RGBA4:_guard975,_guard976=B===i.UNSIGNED_SHORT_5_5_5_1,_guard976?D=i.RGB5_A1:_guard976;}return _guard977=D===i.R16F||D===i.R32F||D===i.RG16F||D===i.RG32F||D===i.RGBA16F||D===i.RGBA32F,_guard977?e.get(\"EXT_color_buffer_float\"):_guard977,D;}function y(b,x){var _guard978,_guard979;let B;return b?x===null||x===gi||x===ys?B=i.DEPTH24_STENCIL8:x===Cn?B=i.DEPTH32F_STENCIL8:(_guard978=x===_s,_guard978?(B=i.DEPTH24_STENCIL8,console.warn(\"DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.\")):_guard978):x===null||x===gi||x===ys?B=i.DEPTH_COMPONENT24:x===Cn?B=i.DEPTH_COMPONENT32F:(_guard979=x===_s,_guard979?B=i.DEPTH_COMPONENT16:_guard979),B;}function R(b,x){var _guard980,_guard981,_guard982,_guard983;return m(b)===!0||(_guard981=(_guard980=b.isFramebufferTexture,_guard980?b.minFilter!==an:_guard980),_guard981?b.minFilter!==xn:_guard981)?Math.log2(Math.max(x.width,x.height))+1:(_guard982=b.mipmaps!==void 0,_guard982?b.mipmaps.length>0:_guard982)?b.mipmaps.length:(_guard983=b.isCompressedTexture,_guard983?Array.isArray(b.image):_guard983)?x.mipmaps.length:1;}function w(b){var _guard984;let x=b.target;x.removeEventListener(\"dispose\",w),F(x),_guard984=x.isVideoTexture,_guard984?u.delete(x):_guard984;}function P(b){let x=b.target;x.removeEventListener(\"dispose\",P),S(x);}function F(b){let x=n.get(b);if(x.__webglInit===void 0)return;let B=b.source,A=d.get(B);if(A){var _guard985,_guard986;let I=A[x.__cacheKey];I.usedTimes--,_guard985=I.usedTimes===0,_guard985?M(b):_guard985,_guard986=Object.keys(A).length===0,_guard986?d.delete(B):_guard986;}n.remove(b);}function M(b){let x=n.get(b);i.deleteTexture(x.__webglTexture);let B=b.source,A=d.get(B);delete A[x.__cacheKey],o.memory.textures--;}function S(b){var _guard987;let x=n.get(b);if(_guard987=b.depthTexture,_guard987?(b.depthTexture.dispose(),n.remove(b.depthTexture)):_guard987,b.isWebGLCubeRenderTarget)for(let A=0;A<6;A++){var _guard988;if(Array.isArray(x.__webglFramebuffer[A]))for(let I=0;I<x.__webglFramebuffer[A].length;I++)i.deleteFramebuffer(x.__webglFramebuffer[A][I]);else i.deleteFramebuffer(x.__webglFramebuffer[A]);_guard988=x.__webglDepthbuffer,_guard988?i.deleteRenderbuffer(x.__webglDepthbuffer[A]):_guard988;}else{var _guard989,_guard990,_guard992;if(Array.isArray(x.__webglFramebuffer))for(let A=0;A<x.__webglFramebuffer.length;A++)i.deleteFramebuffer(x.__webglFramebuffer[A]);else i.deleteFramebuffer(x.__webglFramebuffer);if(_guard989=x.__webglDepthbuffer,_guard989?i.deleteRenderbuffer(x.__webglDepthbuffer):_guard989,_guard990=x.__webglMultisampledFramebuffer,_guard990?i.deleteFramebuffer(x.__webglMultisampledFramebuffer):_guard990,x.__webglColorRenderbuffer)for(let A=0;A<x.__webglColorRenderbuffer.length;A++){var _guard991;_guard991=x.__webglColorRenderbuffer[A],_guard991?i.deleteRenderbuffer(x.__webglColorRenderbuffer[A]):_guard991;}_guard992=x.__webglDepthRenderbuffer,_guard992?i.deleteRenderbuffer(x.__webglDepthRenderbuffer):_guard992;}let B=b.textures;for(let A=0,I=B.length;A<I;A++){var _guard993;let D=n.get(B[A]);_guard993=D.__webglTexture,_guard993?(i.deleteTexture(D.__webglTexture),o.memory.textures--):_guard993,n.remove(B[A]);}n.remove(b);}let L=0;function z(){L=0;}function $(){var _guard994;let b=L;return _guard994=b>=s.maxTextures,_guard994?console.warn(\"THREE.WebGLTextures: Trying to use \"+b+\" texture units while this GPU supports only \"+s.maxTextures):_guard994,L+=1,b;}function Q(b){let x=[];return x.push(b.wrapS),x.push(b.wrapT),x.push(b.wrapR||0),x.push(b.magFilter),x.push(b.minFilter),x.push(b.anisotropy),x.push(b.internalFormat),x.push(b.format),x.push(b.type),x.push(b.generateMipmaps),x.push(b.premultiplyAlpha),x.push(b.flipY),x.push(b.unpackAlignment),x.push(b.colorSpace),x.join();}function O(b,x){var _guard995,_guard996,_guard997,_guard998,_guard999;let B=n.get(b);if(_guard995=b.isVideoTexture,_guard995?be(b):_guard995,_guard998=(_guard997=(_guard996=b.isRenderTargetTexture===!1,_guard996?b.isExternalTexture!==!0:_guard996),_guard997?b.version>0:_guard997),_guard998?B.__version!==b.version:_guard998){let A=b.image;if(A===null)console.warn(\"THREE.WebGLRenderer: Texture marked for update but no image data found.\");else if(A.complete===!1)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\");else{J(B,b,x);return;}}else _guard999=b.isExternalTexture,_guard999?B.__webglTexture=b.sourceTexture?b.sourceTexture:null:_guard999;t.bindTexture(i.TEXTURE_2D,B.__webglTexture,i.TEXTURE0+x);}function W(b,x){var _guard1000,_guard1001;let B=n.get(b);if(_guard1001=(_guard1000=b.isRenderTargetTexture===!1,_guard1000?b.version>0:_guard1000),_guard1001?B.__version!==b.version:_guard1001){J(B,b,x);return;}t.bindTexture(i.TEXTURE_2D_ARRAY,B.__webglTexture,i.TEXTURE0+x);}function ae(b,x){var _guard1002,_guard1003;let B=n.get(b);if(_guard1003=(_guard1002=b.isRenderTargetTexture===!1,_guard1002?b.version>0:_guard1002),_guard1003?B.__version!==b.version:_guard1003){J(B,b,x);return;}t.bindTexture(i.TEXTURE_3D,B.__webglTexture,i.TEXTURE0+x);}function H(b,x){var _guard1004;let B=n.get(b);if(_guard1004=b.version>0,_guard1004?B.__version!==b.version:_guard1004){re(B,b,x);return;}t.bindTexture(i.TEXTURE_CUBE_MAP,B.__webglTexture,i.TEXTURE0+x);}let q={[Mo]:i.REPEAT,[ci]:i.CLAMP_TO_EDGE,[So]:i.MIRRORED_REPEAT},ce={[an]:i.NEAREST,[Ih]:i.NEAREST_MIPMAP_NEAREST,[yr]:i.NEAREST_MIPMAP_LINEAR,[xn]:i.LINEAR,[la]:i.LINEAR_MIPMAP_NEAREST,[mi]:i.LINEAR_MIPMAP_LINEAR},ge={[Uh]:i.NEVER,[Vh]:i.ALWAYS,[Nh]:i.LESS,[Sc]:i.LEQUAL,[Fh]:i.EQUAL,[zh]:i.GEQUAL,[Oh]:i.GREATER,[Bh]:i.NOTEQUAL};function Pe(b,x){var _guard1005,_guard1006,_guard1007,_guard1008,_guard1009;if(_guard1007=(_guard1006=(_guard1005=x.type===Cn,_guard1005?e.has(\"OES_texture_float_linear\")===!1:_guard1005),_guard1006?x.magFilter===xn||x.magFilter===la||x.magFilter===yr||x.magFilter===mi||x.minFilter===xn||x.minFilter===la||x.minFilter===yr||x.minFilter===mi:_guard1006),_guard1007?console.warn(\"THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.\"):_guard1007,i.texParameteri(b,i.TEXTURE_WRAP_S,q[x.wrapS]),i.texParameteri(b,i.TEXTURE_WRAP_T,q[x.wrapT]),_guard1008=b===i.TEXTURE_3D||b===i.TEXTURE_2D_ARRAY,_guard1008?i.texParameteri(b,i.TEXTURE_WRAP_R,q[x.wrapR]):_guard1008,i.texParameteri(b,i.TEXTURE_MAG_FILTER,ce[x.magFilter]),i.texParameteri(b,i.TEXTURE_MIN_FILTER,ce[x.minFilter]),_guard1009=x.compareFunction,_guard1009?(i.texParameteri(b,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(b,i.TEXTURE_COMPARE_FUNC,ge[x.compareFunction])):_guard1009,e.has(\"EXT_texture_filter_anisotropic\")===!0){var _guard1010,_guard1011;if(x.magFilter===an||(_guard1010=x.minFilter!==yr,_guard1010?x.minFilter!==mi:_guard1010)||(_guard1011=x.type===Cn,_guard1011?e.has(\"OES_texture_float_linear\")===!1:_guard1011))return;if(x.anisotropy>1||n.get(x).__currentAnisotropy){let B=e.get(\"EXT_texture_filter_anisotropic\");i.texParameterf(b,B.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(x.anisotropy,s.getMaxAnisotropy())),n.get(x).__currentAnisotropy=x.anisotropy;}}}function Fe(b,x){var _guard1012,_guard1013;let B=!1;_guard1012=b.__webglInit===void 0,_guard1012?(b.__webglInit=!0,x.addEventListener(\"dispose\",w)):_guard1012;let A=x.source,I=d.get(A);_guard1013=I===void 0,_guard1013?(I={},d.set(A,I)):_guard1013;let D=Q(x);if(D!==b.__cacheKey){var _guard1014,_guard1015,_guard1016;_guard1014=I[D]===void 0,_guard1014?(I[D]={texture:i.createTexture(),usedTimes:0},o.memory.textures++,B=!0):_guard1014,I[D].usedTimes++;let X=I[b.__cacheKey];_guard1016=X!==void 0,_guard1016?(I[b.__cacheKey].usedTimes--,_guard1015=X.usedTimes===0,_guard1015?M(x):_guard1015):_guard1016,b.__cacheKey=D,b.__webglTexture=I[D].texture;}return B;}function ve(b,x,B){return Math.floor(Math.floor(b\/B)\/x);}function Ie(b,x,B,A){let D=b.updateRanges;if(D.length===0)t.texSubImage2D(i.TEXTURE_2D,0,0,0,x.width,x.height,B,A,x.data);else{D.sort((ne,oe)=>ne.start-oe.start);let X=0;for(let ne=1;ne<D.length;ne++){var _guard1017,_guard1018;let oe=D[X],he=D[ne],fe=oe.start+oe.count,ye=ve(he.start,x.width,4),ke=ve(oe.start,x.width,4);(_guard1018=(_guard1017=he.start<=fe+1,_guard1017?ye===ke:_guard1017),_guard1018?ve(he.start+he.count-1,x.width,4)===ye:_guard1018)?oe.count=Math.max(oe.count,he.start+he.count-oe.start):(++X,D[X]=he);}D.length=X+1;let G=i.getParameter(i.UNPACK_ROW_LENGTH),ie=i.getParameter(i.UNPACK_SKIP_PIXELS),te=i.getParameter(i.UNPACK_SKIP_ROWS);i.pixelStorei(i.UNPACK_ROW_LENGTH,x.width);for(let ne=0,oe=D.length;ne<oe;ne++){let he=D[ne],fe=Math.floor(he.start\/4),ye=Math.ceil(he.count\/4),ke=fe%x.width,U=Math.floor(fe\/x.width),ee=ye,se=1;i.pixelStorei(i.UNPACK_SKIP_PIXELS,ke),i.pixelStorei(i.UNPACK_SKIP_ROWS,U),t.texSubImage2D(i.TEXTURE_2D,0,ke,U,ee,se,B,A,x.data);}b.clearUpdateRanges(),i.pixelStorei(i.UNPACK_ROW_LENGTH,G),i.pixelStorei(i.UNPACK_SKIP_PIXELS,ie),i.pixelStorei(i.UNPACK_SKIP_ROWS,te);}}function J(b,x,B){var _guard1019,_guard1020;let A=i.TEXTURE_2D;_guard1019=x.isDataArrayTexture||x.isCompressedArrayTexture,_guard1019?A=i.TEXTURE_2D_ARRAY:_guard1019,_guard1020=x.isData3DTexture,_guard1020?A=i.TEXTURE_3D:_guard1020;let I=Fe(b,x),D=x.source;t.bindTexture(A,b.__webglTexture,i.TEXTURE0+B);let X=n.get(D);if(D.version!==X.__version||I===!0){var _guard1021,_guard1025,_guard1026,_guard1035,_guard1036,_guard1040,_guard1041;t.activeTexture(i.TEXTURE0+B);let G=rt.getPrimaries(rt.workingColorSpace),ie=x.colorSpace===Jn?null:rt.getPrimaries(x.colorSpace),te=x.colorSpace===Jn||G===ie?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,x.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,x.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,te);let ne=_(x.image,!1,s.maxTextureSize);ne=Re(x,ne);let oe=r.convert(x.format,x.colorSpace),he=r.convert(x.type),fe=T(x.internalFormat,oe,he,x.colorSpace,x.isVideoTexture);Pe(A,x);let ye,ke=x.mipmaps,U=x.isVideoTexture!==!0,ee=X.__version===void 0||I===!0,se=D.dataReady,ue=R(x,ne);if(x.isDepthTexture)fe=y(x.format===vs,x.type),_guard1021=ee,_guard1021?U?t.texStorage2D(i.TEXTURE_2D,1,fe,ne.width,ne.height):t.texImage2D(i.TEXTURE_2D,0,fe,ne.width,ne.height,0,oe,he,null):_guard1021;else if(x.isDataTexture){if(ke.length>0){var _guard1022,_guard1023;_guard1023=(_guard1022=U,_guard1022?ee:_guard1022),_guard1023?t.texStorage2D(i.TEXTURE_2D,ue,fe,ke[0].width,ke[0].height):_guard1023;for(let Y=0,Z=ke.length;Y<Z;Y++){var _guard1024;ye=ke[Y],U?(_guard1024=se,_guard1024?t.texSubImage2D(i.TEXTURE_2D,Y,0,0,ye.width,ye.height,oe,he,ye.data):_guard1024):t.texImage2D(i.TEXTURE_2D,Y,fe,ye.width,ye.height,0,oe,he,ye.data);}x.generateMipmaps=!1;}else U?(_guard1025=ee,_guard1025?t.texStorage2D(i.TEXTURE_2D,ue,fe,ne.width,ne.height):_guard1025,_guard1026=se,_guard1026?Ie(x,ne,oe,he):_guard1026):t.texImage2D(i.TEXTURE_2D,0,fe,ne.width,ne.height,0,oe,he,ne.data);}else if(x.isCompressedTexture){if(x.isCompressedArrayTexture){var _guard1027,_guard1028;_guard1028=(_guard1027=U,_guard1027?ee:_guard1027),_guard1028?t.texStorage3D(i.TEXTURE_2D_ARRAY,ue,fe,ke[0].width,ke[0].height,ne.depth):_guard1028;for(let Y=0,Z=ke.length;Y<Z;Y++){var _guard1029;if(ye=ke[Y],x.format!==un){if(oe!==null){if(U){if(se)if(x.layerUpdates.size>0){let _e=Rc(ye.width,ye.height,x.format,x.type);for(let Le of x.layerUpdates){let je=ye.data.subarray(Le*_e\/ye.data.BYTES_PER_ELEMENT,(Le+1)*_e\/ye.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,Y,0,0,Le,ye.width,ye.height,1,oe,je);}x.clearLayerUpdates();}else t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,Y,0,0,0,ye.width,ye.height,ne.depth,oe,ye.data);}else t.compressedTexImage3D(i.TEXTURE_2D_ARRAY,Y,fe,ye.width,ye.height,ne.depth,0,ye.data,0,0);}else console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");}else U?(_guard1029=se,_guard1029?t.texSubImage3D(i.TEXTURE_2D_ARRAY,Y,0,0,0,ye.width,ye.height,ne.depth,oe,he,ye.data):_guard1029):t.texImage3D(i.TEXTURE_2D_ARRAY,Y,fe,ye.width,ye.height,ne.depth,0,oe,he,ye.data);}}else{var _guard1030,_guard1031;_guard1031=(_guard1030=U,_guard1030?ee:_guard1030),_guard1031?t.texStorage2D(i.TEXTURE_2D,ue,fe,ke[0].width,ke[0].height):_guard1031;for(let Y=0,Z=ke.length;Y<Z;Y++){var _guard1032,_guard1033;ye=ke[Y],x.format!==un?oe!==null?U?(_guard1032=se,_guard1032?t.compressedTexSubImage2D(i.TEXTURE_2D,Y,0,0,ye.width,ye.height,oe,ye.data):_guard1032):t.compressedTexImage2D(i.TEXTURE_2D,Y,fe,ye.width,ye.height,0,ye.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):U?(_guard1033=se,_guard1033?t.texSubImage2D(i.TEXTURE_2D,Y,0,0,ye.width,ye.height,oe,he,ye.data):_guard1033):t.texImage2D(i.TEXTURE_2D,Y,fe,ye.width,ye.height,0,oe,he,ye.data);}}}else if(x.isDataArrayTexture){if(U){var _guard1034;if(_guard1034=ee,_guard1034?t.texStorage3D(i.TEXTURE_2D_ARRAY,ue,fe,ne.width,ne.height,ne.depth):_guard1034,se)if(x.layerUpdates.size>0){let Y=Rc(ne.width,ne.height,x.format,x.type);for(let Z of x.layerUpdates){let _e=ne.data.subarray(Z*Y\/ne.data.BYTES_PER_ELEMENT,(Z+1)*Y\/ne.data.BYTES_PER_ELEMENT);t.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,Z,ne.width,ne.height,1,oe,he,_e);}x.clearLayerUpdates();}else t.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,ne.width,ne.height,ne.depth,oe,he,ne.data);}else t.texImage3D(i.TEXTURE_2D_ARRAY,0,fe,ne.width,ne.height,ne.depth,0,oe,he,ne.data);}else if(x.isData3DTexture)U?(_guard1035=ee,_guard1035?t.texStorage3D(i.TEXTURE_3D,ue,fe,ne.width,ne.height,ne.depth):_guard1035,_guard1036=se,_guard1036?t.texSubImage3D(i.TEXTURE_3D,0,0,0,0,ne.width,ne.height,ne.depth,oe,he,ne.data):_guard1036):t.texImage3D(i.TEXTURE_3D,0,fe,ne.width,ne.height,ne.depth,0,oe,he,ne.data);else if(x.isFramebufferTexture){if(ee)if(U)t.texStorage2D(i.TEXTURE_2D,ue,fe,ne.width,ne.height);else{let Y=ne.width,Z=ne.height;for(let _e=0;_e<ue;_e++)t.texImage2D(i.TEXTURE_2D,_e,fe,Y,Z,0,oe,he,null),Y>>=1,Z>>=1;}}else if(ke.length>0){var _guard1037;if(_guard1037=U,_guard1037?ee:_guard1037){let Y=Ve(ke[0]);t.texStorage2D(i.TEXTURE_2D,ue,fe,Y.width,Y.height);}for(let Y=0,Z=ke.length;Y<Z;Y++){var _guard1038;ye=ke[Y],U?(_guard1038=se,_guard1038?t.texSubImage2D(i.TEXTURE_2D,Y,0,0,oe,he,ye):_guard1038):t.texImage2D(i.TEXTURE_2D,Y,fe,oe,he,ye);}x.generateMipmaps=!1;}else if(U){var _guard1039;if(ee){let Y=Ve(ne);t.texStorage2D(i.TEXTURE_2D,ue,fe,Y.width,Y.height);}_guard1039=se,_guard1039?t.texSubImage2D(i.TEXTURE_2D,0,0,0,oe,he,ne):_guard1039;}else t.texImage2D(i.TEXTURE_2D,0,fe,oe,he,ne);_guard1040=m(x),_guard1040?p(A):_guard1040,X.__version=D.version,_guard1041=x.onUpdate,_guard1041?x.onUpdate(x):_guard1041;}b.__version=x.version;}function re(b,x,B){if(x.image.length!==6)return;let A=Fe(b,x),I=x.source;t.bindTexture(i.TEXTURE_CUBE_MAP,b.__webglTexture,i.TEXTURE0+B);let D=n.get(I);if(I.version!==D.__version||A===!0){var _guard1042,_guard1054,_guard1055;t.activeTexture(i.TEXTURE0+B);let X=rt.getPrimaries(rt.workingColorSpace),G=x.colorSpace===Jn?null:rt.getPrimaries(x.colorSpace),ie=x.colorSpace===Jn||X===G?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,x.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,x.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,ie);let te=x.isCompressedTexture||x.image[0].isCompressedTexture,ne=(_guard1042=x.image[0],_guard1042?x.image[0].isDataTexture:_guard1042),oe=[];for(let Z=0;Z<6;Z++){var _guard1043;(_guard1043=!te,_guard1043?!ne:_guard1043)?oe[Z]=_(x.image[Z],!0,s.maxCubemapSize):oe[Z]=ne?x.image[Z].image:x.image[Z],oe[Z]=Re(x,oe[Z]);}let he=oe[0],fe=r.convert(x.format,x.colorSpace),ye=r.convert(x.type),ke=T(x.internalFormat,fe,ye,x.colorSpace),U=x.isVideoTexture!==!0,ee=D.__version===void 0||A===!0,se=I.dataReady,ue=R(x,he);Pe(i.TEXTURE_CUBE_MAP,x);let Y;if(te){var _guard1044,_guard1045;_guard1045=(_guard1044=U,_guard1044?ee:_guard1044),_guard1045?t.texStorage2D(i.TEXTURE_CUBE_MAP,ue,ke,he.width,he.height):_guard1045;for(let Z=0;Z<6;Z++){Y=oe[Z].mipmaps;for(let _e=0;_e<Y.length;_e++){var _guard1046,_guard1047;let Le=Y[_e];x.format!==un?fe!==null?U?(_guard1046=se,_guard1046?t.compressedTexSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e,0,0,Le.width,Le.height,fe,Le.data):_guard1046):t.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e,ke,Le.width,Le.height,0,Le.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):U?(_guard1047=se,_guard1047?t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e,0,0,Le.width,Le.height,fe,ye,Le.data):_guard1047):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e,ke,Le.width,Le.height,0,fe,ye,Le.data);}}}else{var _guard1048;if(Y=x.mipmaps,_guard1048=U,_guard1048?ee:_guard1048){var _guard1049;_guard1049=Y.length>0,_guard1049?ue++:_guard1049;let Z=Ve(oe[0]);t.texStorage2D(i.TEXTURE_CUBE_MAP,ue,ke,Z.width,Z.height);}for(let Z=0;Z<6;Z++)if(ne){var _guard1050;U?(_guard1050=se,_guard1050?t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0,0,0,oe[Z].width,oe[Z].height,fe,ye,oe[Z].data):_guard1050):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0,ke,oe[Z].width,oe[Z].height,0,fe,ye,oe[Z].data);for(let _e=0;_e<Y.length;_e++){var _guard1051;let je=Y[_e].image[Z].image;U?(_guard1051=se,_guard1051?t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e+1,0,0,je.width,je.height,fe,ye,je.data):_guard1051):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e+1,ke,je.width,je.height,0,fe,ye,je.data);}}else{var _guard1052;U?(_guard1052=se,_guard1052?t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0,0,0,fe,ye,oe[Z]):_guard1052):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,0,ke,fe,ye,oe[Z]);for(let _e=0;_e<Y.length;_e++){var _guard1053;let Le=Y[_e];U?(_guard1053=se,_guard1053?t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e+1,0,0,fe,ye,Le.image[Z]):_guard1053):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+Z,_e+1,ke,fe,ye,Le.image[Z]);}}}_guard1054=m(x),_guard1054?p(i.TEXTURE_CUBE_MAP):_guard1054,D.__version=I.version,_guard1055=x.onUpdate,_guard1055?x.onUpdate(x):_guard1055;}b.__version=x.version;}function pe(b,x,B,A,I,D){var _guard1056,_guard1057;let X=r.convert(B.format,B.colorSpace),G=r.convert(B.type),ie=T(B.internalFormat,X,G,B.colorSpace),te=n.get(x),ne=n.get(B);if(ne.__renderTarget=x,!te.__hasExternalTextures){let oe=Math.max(1,x.width>>D),he=Math.max(1,x.height>>D);I===i.TEXTURE_3D||I===i.TEXTURE_2D_ARRAY?t.texImage3D(I,D,ie,oe,he,x.depth,0,X,G,null):t.texImage2D(I,D,ie,oe,he,0,X,G,null);}t.bindFramebuffer(i.FRAMEBUFFER,b),le(x)?a.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,A,I,ne.__webglTexture,0,xe(x)):(_guard1057=I===i.TEXTURE_2D||(_guard1056=I>=i.TEXTURE_CUBE_MAP_POSITIVE_X,_guard1056?I<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z:_guard1056),_guard1057?i.framebufferTexture2D(i.FRAMEBUFFER,A,I,ne.__webglTexture,D):_guard1057),t.bindFramebuffer(i.FRAMEBUFFER,null);}function me(b,x,B){if(i.bindRenderbuffer(i.RENDERBUFFER,b),x.depthBuffer){var _guard1058;let A=x.depthTexture,I=(_guard1058=A,_guard1058?A.isDepthTexture:_guard1058)?A.type:null,D=y(x.stencilBuffer,I),X=x.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,G=xe(x);le(x)?a.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,G,D,x.width,x.height):B?i.renderbufferStorageMultisample(i.RENDERBUFFER,G,D,x.width,x.height):i.renderbufferStorage(i.RENDERBUFFER,D,x.width,x.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,X,i.RENDERBUFFER,b);}else{let A=x.textures;for(let I=0;I<A.length;I++){var _guard1059;let D=A[I],X=r.convert(D.format,D.colorSpace),G=r.convert(D.type),ie=T(D.internalFormat,X,G,D.colorSpace),te=xe(x);(_guard1059=B,_guard1059?le(x)===!1:_guard1059)?i.renderbufferStorageMultisample(i.RENDERBUFFER,te,ie,x.width,x.height):le(x)?a.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,te,ie,x.width,x.height):i.renderbufferStorage(i.RENDERBUFFER,ie,x.width,x.height);}}i.bindRenderbuffer(i.RENDERBUFFER,null);}function Me(b,x){var _guard1060,_guard1061,_guard1062;if(_guard1060=x,_guard1060?x.isWebGLCubeRenderTarget:_guard1060)throw new Error(\"Depth Texture with cube render targets is not supported\");if(t.bindFramebuffer(i.FRAMEBUFFER,b),!(_guard1061=x.depthTexture,_guard1061?x.depthTexture.isDepthTexture:_guard1061))throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");let A=n.get(x.depthTexture);A.__renderTarget=x,_guard1062=!A.__webglTexture||x.depthTexture.image.width!==x.width||x.depthTexture.image.height!==x.height,_guard1062?(x.depthTexture.image.width=x.width,x.depthTexture.image.height=x.height,x.depthTexture.needsUpdate=!0):_guard1062,O(x.depthTexture,0);let I=A.__webglTexture,D=xe(x);if(x.depthTexture.format===ls)le(x)?a.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,I,0,D):i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,I,0);else if(x.depthTexture.format===vs)le(x)?a.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.TEXTURE_2D,I,0,D):i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.TEXTURE_2D,I,0);else throw new Error(\"Unknown depthTexture format\");}function Ne(b){var _guard1064;let x=n.get(b),B=b.isWebGLCubeRenderTarget===!0;if(x.__boundDepthTexture!==b.depthTexture){var _guard1063;let A=b.depthTexture;if(_guard1063=x.__depthDisposeCallback,_guard1063?x.__depthDisposeCallback():_guard1063,A){let I=()=>{delete x.__boundDepthTexture,delete x.__depthDisposeCallback,A.removeEventListener(\"dispose\",I);};A.addEventListener(\"dispose\",I),x.__depthDisposeCallback=I;}x.__boundDepthTexture=A;}if(_guard1064=b.depthTexture,_guard1064?!x.__autoAllocateDepthBuffer:_guard1064){var _guard1065;if(B)throw new Error(\"target.depthTexture not supported in Cube render targets\");let A=b.texture.mipmaps;(_guard1065=A,_guard1065?A.length>0:_guard1065)?Me(x.__webglFramebuffer[0],b):Me(x.__webglFramebuffer,b);}else if(B){x.__webglDepthbuffer=[];for(let A=0;A<6;A++)if(t.bindFramebuffer(i.FRAMEBUFFER,x.__webglFramebuffer[A]),x.__webglDepthbuffer[A]===void 0)x.__webglDepthbuffer[A]=i.createRenderbuffer(),me(x.__webglDepthbuffer[A],b,!1);else{let I=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,D=x.__webglDepthbuffer[A];i.bindRenderbuffer(i.RENDERBUFFER,D),i.framebufferRenderbuffer(i.FRAMEBUFFER,I,i.RENDERBUFFER,D);}}else{var _guard1066;let A=b.texture.mipmaps;if((_guard1066=A,_guard1066?A.length>0:_guard1066)?t.bindFramebuffer(i.FRAMEBUFFER,x.__webglFramebuffer[0]):t.bindFramebuffer(i.FRAMEBUFFER,x.__webglFramebuffer),x.__webglDepthbuffer===void 0)x.__webglDepthbuffer=i.createRenderbuffer(),me(x.__webglDepthbuffer,b,!1);else{let I=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,D=x.__webglDepthbuffer;i.bindRenderbuffer(i.RENDERBUFFER,D),i.framebufferRenderbuffer(i.FRAMEBUFFER,I,i.RENDERBUFFER,D);}}t.bindFramebuffer(i.FRAMEBUFFER,null);}function it(b,x,B){var _guard1067,_guard1068;let A=n.get(b);_guard1067=x!==void 0,_guard1067?pe(A.__webglFramebuffer,b,b.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,0):_guard1067,_guard1068=B!==void 0,_guard1068?Ne(b):_guard1068;}function C(b){var _guard1069,_guard1082;let x=b.texture,B=n.get(b),A=n.get(x);b.addEventListener(\"dispose\",P);let I=b.textures,D=b.isWebGLCubeRenderTarget===!0,X=I.length>1;if(X||(_guard1069=A.__webglTexture===void 0,_guard1069?A.__webglTexture=i.createTexture():_guard1069,A.__version=x.version,o.memory.textures++),D){B.__webglFramebuffer=[];for(let G=0;G<6;G++){var _guard1070;if(_guard1070=x.mipmaps,_guard1070?x.mipmaps.length>0:_guard1070){B.__webglFramebuffer[G]=[];for(let ie=0;ie<x.mipmaps.length;ie++)B.__webglFramebuffer[G][ie]=i.createFramebuffer();}else B.__webglFramebuffer[G]=i.createFramebuffer();}}else{var _guard1071,_guard1073;if(_guard1071=x.mipmaps,_guard1071?x.mipmaps.length>0:_guard1071){B.__webglFramebuffer=[];for(let G=0;G<x.mipmaps.length;G++)B.__webglFramebuffer[G]=i.createFramebuffer();}else B.__webglFramebuffer=i.createFramebuffer();if(X)for(let G=0,ie=I.length;G<ie;G++){var _guard1072;let te=n.get(I[G]);_guard1072=te.__webglTexture===void 0,_guard1072?(te.__webglTexture=i.createTexture(),o.memory.textures++):_guard1072;}if(_guard1073=b.samples>0,_guard1073?le(b)===!1:_guard1073){var _guard1074;B.__webglMultisampledFramebuffer=i.createFramebuffer(),B.__webglColorRenderbuffer=[],t.bindFramebuffer(i.FRAMEBUFFER,B.__webglMultisampledFramebuffer);for(let G=0;G<I.length;G++){let ie=I[G];B.__webglColorRenderbuffer[G]=i.createRenderbuffer(),i.bindRenderbuffer(i.RENDERBUFFER,B.__webglColorRenderbuffer[G]);let te=r.convert(ie.format,ie.colorSpace),ne=r.convert(ie.type),oe=T(ie.internalFormat,te,ne,ie.colorSpace,b.isXRRenderTarget===!0),he=xe(b);i.renderbufferStorageMultisample(i.RENDERBUFFER,he,oe,b.width,b.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+G,i.RENDERBUFFER,B.__webglColorRenderbuffer[G]);}i.bindRenderbuffer(i.RENDERBUFFER,null),_guard1074=b.depthBuffer,_guard1074?(B.__webglDepthRenderbuffer=i.createRenderbuffer(),me(B.__webglDepthRenderbuffer,b,!0)):_guard1074,t.bindFramebuffer(i.FRAMEBUFFER,null);}}if(D){var _guard1076;t.bindTexture(i.TEXTURE_CUBE_MAP,A.__webglTexture),Pe(i.TEXTURE_CUBE_MAP,x);for(let G=0;G<6;G++){var _guard1075;if(_guard1075=x.mipmaps,_guard1075?x.mipmaps.length>0:_guard1075)for(let ie=0;ie<x.mipmaps.length;ie++)pe(B.__webglFramebuffer[G][ie],b,x,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+G,ie);else pe(B.__webglFramebuffer[G],b,x,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+G,0);}_guard1076=m(x),_guard1076?p(i.TEXTURE_CUBE_MAP):_guard1076,t.unbindTexture();}else if(X){for(let G=0,ie=I.length;G<ie;G++){var _guard1077,_guard1078;let te=I[G],ne=n.get(te),oe=i.TEXTURE_2D;_guard1077=b.isWebGL3DRenderTarget||b.isWebGLArrayRenderTarget,_guard1077?oe=b.isWebGL3DRenderTarget?i.TEXTURE_3D:i.TEXTURE_2D_ARRAY:_guard1077,t.bindTexture(oe,ne.__webglTexture),Pe(oe,te),pe(B.__webglFramebuffer,b,te,i.COLOR_ATTACHMENT0+G,oe,0),_guard1078=m(te),_guard1078?p(oe):_guard1078;}t.unbindTexture();}else{var _guard1079,_guard1080,_guard1081;let G=i.TEXTURE_2D;if(_guard1079=b.isWebGL3DRenderTarget||b.isWebGLArrayRenderTarget,_guard1079?G=b.isWebGL3DRenderTarget?i.TEXTURE_3D:i.TEXTURE_2D_ARRAY:_guard1079,t.bindTexture(G,A.__webglTexture),Pe(G,x),_guard1080=x.mipmaps,_guard1080?x.mipmaps.length>0:_guard1080)for(let ie=0;ie<x.mipmaps.length;ie++)pe(B.__webglFramebuffer[ie],b,x,i.COLOR_ATTACHMENT0,G,ie);else pe(B.__webglFramebuffer,b,x,i.COLOR_ATTACHMENT0,G,0);_guard1081=m(x),_guard1081?p(G):_guard1081,t.unbindTexture();}_guard1082=b.depthBuffer,_guard1082?Ne(b):_guard1082;}function tt(b){let x=b.textures;for(let B=0,A=x.length;B<A;B++){let I=x[B];if(m(I)){let D=E(b),X=n.get(I).__webglTexture;t.bindTexture(D,X),p(D),t.unbindTexture();}}}let De=[],Ae=[];function Se(b){if(b.samples>0){var _guard1091,_guard1092;if(le(b)===!1){var _guard1083;let x=b.textures,B=b.width,A=b.height,I=i.COLOR_BUFFER_BIT,D=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,X=n.get(b),G=x.length>1;if(G)for(let te=0;te<x.length;te++)t.bindFramebuffer(i.FRAMEBUFFER,X.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+te,i.RENDERBUFFER,null),t.bindFramebuffer(i.FRAMEBUFFER,X.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+te,i.TEXTURE_2D,null,0);t.bindFramebuffer(i.READ_FRAMEBUFFER,X.__webglMultisampledFramebuffer);let ie=b.texture.mipmaps;(_guard1083=ie,_guard1083?ie.length>0:_guard1083)?t.bindFramebuffer(i.DRAW_FRAMEBUFFER,X.__webglFramebuffer[0]):t.bindFramebuffer(i.DRAW_FRAMEBUFFER,X.__webglFramebuffer);for(let te=0;te<x.length;te++){var _guard1084,_guard1085,_guard1086,_guard1087,_guard1088,_guard1089,_guard1090;if(_guard1087=b.resolveDepthBuffer,_guard1087?(_guard1084=b.depthBuffer,_guard1084?I|=i.DEPTH_BUFFER_BIT:_guard1084,_guard1086=(_guard1085=b.stencilBuffer,_guard1085?b.resolveStencilBuffer:_guard1085),_guard1086?I|=i.STENCIL_BUFFER_BIT:_guard1086):_guard1087,G){i.framebufferRenderbuffer(i.READ_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,X.__webglColorRenderbuffer[te]);let ne=n.get(x[te]).__webglTexture;i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,ne,0);}i.blitFramebuffer(0,0,B,A,0,0,B,A,I,i.NEAREST),_guard1090=c===!0,_guard1090?(De.length=0,Ae.length=0,De.push(i.COLOR_ATTACHMENT0+te),_guard1089=(_guard1088=b.depthBuffer,_guard1088?b.resolveDepthBuffer===!1:_guard1088),_guard1089?(De.push(D),Ae.push(D),i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,Ae)):_guard1089,i.invalidateFramebuffer(i.READ_FRAMEBUFFER,De)):_guard1090;}if(t.bindFramebuffer(i.READ_FRAMEBUFFER,null),t.bindFramebuffer(i.DRAW_FRAMEBUFFER,null),G)for(let te=0;te<x.length;te++){t.bindFramebuffer(i.FRAMEBUFFER,X.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+te,i.RENDERBUFFER,X.__webglColorRenderbuffer[te]);let ne=n.get(x[te]).__webglTexture;t.bindFramebuffer(i.FRAMEBUFFER,X.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+te,i.TEXTURE_2D,ne,0);}t.bindFramebuffer(i.DRAW_FRAMEBUFFER,X.__webglMultisampledFramebuffer);}else if(_guard1092=(_guard1091=b.depthBuffer,_guard1091?b.resolveDepthBuffer===!1:_guard1091),_guard1092?c:_guard1092){let x=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT;i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,[x]);}}}function xe(b){return Math.min(s.maxSamples,b.samples);}function le(b){var _guard1093,_guard1094;let x=n.get(b);return _guard1094=(_guard1093=b.samples>0,_guard1093?e.has(\"WEBGL_multisampled_render_to_texture\")===!0:_guard1093),_guard1094?x.__useRenderToTexture!==!1:_guard1094;}function be(b){var _guard1095;let x=o.render.frame;_guard1095=u.get(b)!==x,_guard1095?(u.set(b,x),b.update()):_guard1095;}function Re(b,x){var _guard1096,_guard1097,_guard1098;let B=b.colorSpace,A=b.format,I=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||(_guard1098=(_guard1096=B!==Ri,_guard1096?B!==Jn:_guard1096),_guard1098?rt.getTransfer(B)===ut?(_guard1097=A!==un||I!==Mn,_guard1097?console.warn(\"THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.\"):_guard1097):console.error(\"THREE.WebGLTextures: Unsupported texture color space:\",B):_guard1098),x;}function Ve(b){var _guard1099,_guard1100;return(_guard1099=typeof HTMLImageElement<\"u\",_guard1099?b instanceof HTMLImageElement:_guard1099)?(l.width=b.naturalWidth||b.width,l.height=b.naturalHeight||b.height):(_guard1100=typeof VideoFrame<\"u\",_guard1100?b instanceof VideoFrame:_guard1100)?(l.width=b.displayWidth,l.height=b.displayHeight):(l.width=b.width,l.height=b.height),l;}this.allocateTextureUnit=$,this.resetTextureUnits=z,this.setTexture2D=O,this.setTexture2DArray=W,this.setTexture3D=ae,this.setTextureCube=H,this.rebindTextures=it,this.setupRenderTarget=C,this.updateRenderTargetMipmap=tt,this.updateMultisampleRenderTarget=Se,this.setupDepthRenderbuffer=Ne,this.setupFrameBufferTexture=pe,this.useMultisampledRTT=le;}function Z0(i,e){function t(n,s=Jn){let r,o=rt.getTransfer(s);if(n===Mn)return i.UNSIGNED_BYTE;if(n===ua)return i.UNSIGNED_SHORT_4_4_4_4;if(n===ha)return i.UNSIGNED_SHORT_5_5_5_1;if(n===mc)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===gc)return i.UNSIGNED_INT_10F_11F_11F_REV;if(n===fc)return i.BYTE;if(n===pc)return i.SHORT;if(n===_s)return i.UNSIGNED_SHORT;if(n===ca)return i.INT;if(n===gi)return i.UNSIGNED_INT;if(n===Cn)return i.FLOAT;if(n===xs)return i.HALF_FLOAT;if(n===_c)return i.ALPHA;if(n===xc)return i.RGB;if(n===un)return i.RGBA;if(n===ls)return i.DEPTH_COMPONENT;if(n===vs)return i.DEPTH_STENCIL;if(n===yc)return i.RED;if(n===da)return i.RED_INTEGER;if(n===vc)return i.RG;if(n===fa)return i.RG_INTEGER;if(n===pa)return i.RGBA_INTEGER;if(n===vr||n===Mr||n===Sr||n===br)if(o===ut){if(r=e.get(\"WEBGL_compressed_texture_s3tc_srgb\"),r!==null){if(n===vr)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===Mr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===Sr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===br)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;}else return null;}else if(r=e.get(\"WEBGL_compressed_texture_s3tc\"),r!==null){if(n===vr)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===Mr)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===Sr)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===br)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT;}else return null;if(n===ma||n===ga||n===_a||n===xa)if(r=e.get(\"WEBGL_compressed_texture_pvrtc\"),r!==null){if(n===ma)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===ga)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===_a)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===xa)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;}else return null;if(n===ya||n===va||n===Ma)if(r=e.get(\"WEBGL_compressed_texture_etc\"),r!==null){if(n===ya||n===va)return o===ut?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===Ma)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC;}else return null;if(n===Sa||n===ba||n===Ta||n===Ea||n===Aa||n===wa||n===Ca||n===Ra||n===Ia||n===Pa||n===Da||n===La||n===Ua||n===Na)if(r=e.get(\"WEBGL_compressed_texture_astc\"),r!==null){if(n===Sa)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===ba)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Ta)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===Ea)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Aa)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===wa)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===Ca)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Ra)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Ia)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===Pa)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Da)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===La)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Ua)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Na)return o===ut?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR;}else return null;if(n===Fa||n===Oa||n===Ba)if(r=e.get(\"EXT_texture_compression_bptc\"),r!==null){if(n===Fa)return o===ut?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===Oa)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Ba)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;}else return null;if(n===za||n===Va||n===ka||n===Ha)if(r=e.get(\"EXT_texture_compression_rgtc\"),r!==null){if(n===za)return r.COMPRESSED_RED_RGTC1_EXT;if(n===Va)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===ka)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===Ha)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;}else return null;return n===ys?i.UNSIGNED_INT_24_8:i[n]!==void 0?i[n]:null;}return{convert:t};}var $0=`\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`,J0=`\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x \/ depthWidth, gl_FragCoord.y \/ depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`,Hc=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0;}init(e,t){if(this.texture===null){var _guard1101;let n=new ar(e.texture);_guard1101=e.depthNear!==t.depthNear||e.depthFar!==t.depthFar,_guard1101?(this.depthNear=e.depthNear,this.depthFar=e.depthFar):_guard1101,this.texture=n;}}getMesh(e){var _guard1102;if(_guard1102=this.texture!==null,_guard1102?this.mesh===null:_guard1102){let t=e.cameras[0].viewport,n=new vn({vertexShader:$0,fragmentShader:J0,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new Ht(new ur(20,20),n);}return this.mesh;}reset(){this.texture=null,this.mesh=null;}getDepthTexture(){return this.texture;}},Gc=class extends Xn{constructor(e,t){super();let n=this,s=null,r=1,o=null,a=\"local-floor\",c=1,l=null,u=null,h=null,d=null,f=null,g=null,_=typeof XRWebGLBinding<\"u\",m=new Hc(),p={},E=t.getContextAttributes(),T=null,y=null,R=[],w=[],P=new ze(),F=null,M=new Ft();M.viewport=new vt();let S=new Ft();S.viewport=new vt();let L=[M,S],z=new Ko(),$=null,Q=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(J){var _guard1103;let re=R[J];return _guard1103=re===void 0,_guard1103?(re=new hs(),R[J]=re):_guard1103,re.getTargetRaySpace();},this.getControllerGrip=function(J){var _guard1104;let re=R[J];return _guard1104=re===void 0,_guard1104?(re=new hs(),R[J]=re):_guard1104,re.getGripSpace();},this.getHand=function(J){var _guard1105;let re=R[J];return _guard1105=re===void 0,_guard1105?(re=new hs(),R[J]=re):_guard1105,re.getHandSpace();};function O(J){var _guard1106;let re=w.indexOf(J.inputSource);if(re===-1)return;let pe=R[re];_guard1106=pe!==void 0,_guard1106?(pe.update(J.inputSource,J.frame,l||o),pe.dispatchEvent({type:J.type,data:J.inputSource})):_guard1106;}function W(){s.removeEventListener(\"select\",O),s.removeEventListener(\"selectstart\",O),s.removeEventListener(\"selectend\",O),s.removeEventListener(\"squeeze\",O),s.removeEventListener(\"squeezestart\",O),s.removeEventListener(\"squeezeend\",O),s.removeEventListener(\"end\",W),s.removeEventListener(\"inputsourceschange\",ae);for(let J=0;J<R.length;J++){var _guard1107;let re=w[J];_guard1107=re!==null,_guard1107?(w[J]=null,R[J].disconnect(re)):_guard1107;}$=null,Q=null,m.reset();for(let J in p)delete p[J];e.setRenderTarget(T),f=null,d=null,h=null,s=null,y=null,Ie.stop(),n.isPresenting=!1,e.setPixelRatio(F),e.setSize(P.width,P.height,!1),n.dispatchEvent({type:\"sessionend\"});}this.setFramebufferScaleFactor=function(J){var _guard1108;r=J,_guard1108=n.isPresenting===!0,_guard1108?console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\"):_guard1108;},this.setReferenceSpaceType=function(J){var _guard1109;a=J,_guard1109=n.isPresenting===!0,_guard1109?console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\"):_guard1109;},this.getReferenceSpace=function(){return l||o;},this.setReferenceSpace=function(J){l=J;},this.getBaseLayer=function(){return d!==null?d:f;},this.getBinding=function(){var _guard1110,_guard1111;return _guard1111=(_guard1110=h===null,_guard1110?_:_guard1110),_guard1111?h=new XRWebGLBinding(s,t):_guard1111,h;},this.getFrame=function(){return g;},this.getSession=function(){return s;},this.setSession=async function(J){if(s=J,s!==null){var _guard1112,_guard1113;if(T=e.getRenderTarget(),s.addEventListener(\"select\",O),s.addEventListener(\"selectstart\",O),s.addEventListener(\"selectend\",O),s.addEventListener(\"squeeze\",O),s.addEventListener(\"squeezestart\",O),s.addEventListener(\"squeezeend\",O),s.addEventListener(\"end\",W),s.addEventListener(\"inputsourceschange\",ae),_guard1112=E.xrCompatible!==!0,_guard1112?await t.makeXRCompatible():_guard1112,F=e.getPixelRatio(),e.getSize(P),_guard1113=_,_guard1113?\"createProjectionLayer\"in XRWebGLBinding.prototype:_guard1113){var _guard1114;let pe=null,me=null,Me=null;_guard1114=E.depth,_guard1114?(Me=E.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,pe=E.stencil?vs:ls,me=E.stencil?ys:gi):_guard1114;let Ne={colorFormat:t.RGBA8,depthFormat:Me,scaleFactor:r};h=this.getBinding(),d=h.createProjectionLayer(Ne),s.updateRenderState({layers:[d]}),e.setPixelRatio(1),e.setSize(d.textureWidth,d.textureHeight,!1),y=new En(d.textureWidth,d.textureHeight,{format:un,type:Mn,depthTexture:new or(d.textureWidth,d.textureHeight,me,void 0,void 0,void 0,void 0,void 0,void 0,pe),stencilBuffer:E.stencil,colorSpace:e.outputColorSpace,samples:E.antialias?4:0,resolveDepthBuffer:d.ignoreDepthValues===!1,resolveStencilBuffer:d.ignoreDepthValues===!1});}else{let pe={antialias:E.antialias,alpha:!0,depth:E.depth,stencil:E.stencil,framebufferScaleFactor:r};f=new XRWebGLLayer(s,t,pe),s.updateRenderState({baseLayer:f}),e.setPixelRatio(1),e.setSize(f.framebufferWidth,f.framebufferHeight,!1),y=new En(f.framebufferWidth,f.framebufferHeight,{format:un,type:Mn,colorSpace:e.outputColorSpace,stencilBuffer:E.stencil,resolveDepthBuffer:f.ignoreDepthValues===!1,resolveStencilBuffer:f.ignoreDepthValues===!1});}y.isXRRenderTarget=!0,this.setFoveation(c),l=null,o=await s.requestReferenceSpace(a),Ie.setContext(s),Ie.start(),n.isPresenting=!0,n.dispatchEvent({type:\"sessionstart\"});}},this.getEnvironmentBlendMode=function(){if(s!==null)return s.environmentBlendMode;},this.getDepthTexture=function(){return m.getDepthTexture();};function ae(J){for(let re=0;re<J.removed.length;re++){var _guard1115;let pe=J.removed[re],me=w.indexOf(pe);_guard1115=me>=0,_guard1115?(w[me]=null,R[me].disconnect(pe)):_guard1115;}for(let re=0;re<J.added.length;re++){var _guard1116;let pe=J.added[re],me=w.indexOf(pe);if(me===-1){for(let Ne=0;Ne<R.length;Ne++)if(Ne>=w.length){w.push(pe),me=Ne;break;}else if(w[Ne]===null){w[Ne]=pe,me=Ne;break;}if(me===-1)break;}let Me=R[me];_guard1116=Me,_guard1116?Me.connect(pe):_guard1116;}}let H=new N(),q=new N();function ce(J,re,pe){H.setFromMatrixPosition(re.matrixWorld),q.setFromMatrixPosition(pe.matrixWorld);let me=H.distanceTo(q),Me=re.projectionMatrix.elements,Ne=pe.projectionMatrix.elements,it=Me[14]\/(Me[10]-1),C=Me[14]\/(Me[10]+1),tt=(Me[9]+1)\/Me[5],De=(Me[9]-1)\/Me[5],Ae=(Me[8]-1)\/Me[0],Se=(Ne[8]+1)\/Ne[0],xe=it*Ae,le=it*Se,be=me\/(-Ae+Se),Re=be*-Ae;if(re.matrixWorld.decompose(J.position,J.quaternion,J.scale),J.translateX(Re),J.translateZ(be),J.matrixWorld.compose(J.position,J.quaternion,J.scale),J.matrixWorldInverse.copy(J.matrixWorld).invert(),Me[10]===-1)J.projectionMatrix.copy(re.projectionMatrix),J.projectionMatrixInverse.copy(re.projectionMatrixInverse);else{let Ve=it+be,b=C+be,x=xe-Re,B=le+(me-Re),A=tt*C\/b*Ve,I=De*C\/b*Ve;J.projectionMatrix.makePerspective(x,B,A,I,Ve,b),J.projectionMatrixInverse.copy(J.projectionMatrix).invert();}}function ge(J,re){re===null?J.matrixWorld.copy(J.matrix):J.matrixWorld.multiplyMatrices(re.matrixWorld,J.matrix),J.matrixWorldInverse.copy(J.matrixWorld).invert();}this.updateCamera=function(J){var _guard1117,_guard1118,_guard1119,_guard1120;if(s===null)return;let re=J.near,pe=J.far;_guard1119=m.texture!==null,_guard1119?(_guard1117=m.depthNear>0,_guard1117?re=m.depthNear:_guard1117,_guard1118=m.depthFar>0,_guard1118?pe=m.depthFar:_guard1118):_guard1119,z.near=S.near=M.near=re,z.far=S.far=M.far=pe,_guard1120=$!==z.near||Q!==z.far,_guard1120?(s.updateRenderState({depthNear:z.near,depthFar:z.far}),$=z.near,Q=z.far):_guard1120,z.layers.mask=J.layers.mask|6,M.layers.mask=~(~z.layers.mask|~3),S.layers.mask=~(~z.layers.mask|~5);let me=J.parent,Me=z.cameras;ge(z,me);for(let Ne=0;Ne<Me.length;Ne++)ge(Me[Ne],me);Me.length===2?ce(z,M,S):z.projectionMatrix.copy(M.projectionMatrix),Pe(J,z,me);};function Pe(J,re,pe){var _guard1121;pe===null?J.matrix.copy(re.matrixWorld):(J.matrix.copy(pe.matrixWorld),J.matrix.invert(),J.matrix.multiply(re.matrixWorld)),J.matrix.decompose(J.position,J.quaternion,J.scale),J.updateMatrixWorld(!0),J.projectionMatrix.copy(re.projectionMatrix),J.projectionMatrixInverse.copy(re.projectionMatrixInverse),_guard1121=J.isPerspectiveCamera,_guard1121?(J.fov=To*2*Math.atan(1\/J.projectionMatrix.elements[5]),J.zoom=1):_guard1121;}this.getCamera=function(){return z;},this.getFoveation=function(){var _guard1122;if(!(_guard1122=d===null,_guard1122?f===null:_guard1122))return c;},this.setFoveation=function(J){var _guard1123,_guard1124,_guard1125;c=J,_guard1123=d!==null,_guard1123?d.fixedFoveation=J:_guard1123,_guard1125=(_guard1124=f!==null,_guard1124?f.fixedFoveation!==void 0:_guard1124),_guard1125?f.fixedFoveation=J:_guard1125;},this.hasDepthSensing=function(){return m.texture!==null;},this.getDepthSensingMesh=function(){return m.getMesh(z);},this.getCameraTexture=function(J){return p[J];};let Fe=null;function ve(J,re){var _guard1142,_guard1143;if(u=re.getViewerPose(l||o),g=re,u!==null){var _guard1126,_guard1127,_guard1132,_guard1133,_guard1134,_guard1138,_guard1139;let pe=u.views;_guard1126=f!==null,_guard1126?(e.setRenderTargetFramebuffer(y,f.framebuffer),e.setRenderTarget(y)):_guard1126;let me=!1;_guard1127=pe.length!==z.cameras.length,_guard1127?(z.cameras.length=0,me=!0):_guard1127;for(let C=0;C<pe.length;C++){var _guard1129,_guard1130,_guard1131;let tt=pe[C],De=null;if(f!==null)De=f.getViewport(tt);else{var _guard1128;let Se=h.getViewSubImage(d,tt);De=Se.viewport,_guard1128=C===0,_guard1128?(e.setRenderTargetTextures(y,Se.colorTexture,Se.depthStencilTexture),e.setRenderTarget(y)):_guard1128;}let Ae=L[C];_guard1129=Ae===void 0,_guard1129?(Ae=new Ft(),Ae.layers.enable(C),Ae.viewport=new vt(),L[C]=Ae):_guard1129,Ae.matrix.fromArray(tt.transform.matrix),Ae.matrix.decompose(Ae.position,Ae.quaternion,Ae.scale),Ae.projectionMatrix.fromArray(tt.projectionMatrix),Ae.projectionMatrixInverse.copy(Ae.projectionMatrix).invert(),Ae.viewport.set(De.x,De.y,De.width,De.height),_guard1130=C===0,_guard1130?(z.matrix.copy(Ae.matrix),z.matrix.decompose(z.position,z.quaternion,z.scale)):_guard1130,_guard1131=me===!0,_guard1131?z.cameras.push(Ae):_guard1131;}let Me=s.enabledFeatures;if(_guard1134=(_guard1133=(_guard1132=Me,_guard1132?Me.includes(\"depth-sensing\"):_guard1132),_guard1133?s.depthUsage==\"gpu-optimized\":_guard1133),_guard1134?_:_guard1134){var _guard1135,_guard1136,_guard1137;h=n.getBinding();let C=h.getDepthInformation(pe[0]);_guard1137=(_guard1136=(_guard1135=C,_guard1135?C.isValid:_guard1135),_guard1136?C.texture:_guard1136),_guard1137?m.init(C,s.renderState):_guard1137;}if(_guard1139=(_guard1138=Me,_guard1138?Me.includes(\"camera-access\"):_guard1138),_guard1139?_:_guard1139){e.state.unbindTexture(),h=n.getBinding();for(let C=0;C<pe.length;C++){let tt=pe[C].camera;if(tt){let De=p[tt];De||(De=new ar(),p[tt]=De);let Ae=h.getCameraImage(tt);De.sourceTexture=Ae;}}}}for(let pe=0;pe<R.length;pe++){var _guard1140,_guard1141;let me=w[pe],Me=R[pe];_guard1141=(_guard1140=me!==null,_guard1140?Me!==void 0:_guard1140),_guard1141?Me.update(me,re,l||o):_guard1141;}_guard1142=Fe,_guard1142?Fe(J,re):_guard1142,_guard1143=re.detectedPlanes,_guard1143?n.dispatchEvent({type:\"planesdetected\",data:re}):_guard1143,g=null;}let Ie=new md();Ie.setAnimationLoop(ve),this.setAnimationLoop=function(J){Fe=J;},this.dispose=function(){};}},zi=new yn(),K0=new gt();function Q0(i,e){function t(m,p){var _guard1144;_guard1144=m.matrixAutoUpdate===!0,_guard1144?m.updateMatrix():_guard1144,p.value.copy(m.matrix);}function n(m,p){var _guard1145;p.color.getRGB(m.fogColor.value,Ec(i)),p.isFog?(m.fogNear.value=p.near,m.fogFar.value=p.far):(_guard1145=p.isFogExp2,_guard1145?m.fogDensity.value=p.density:_guard1145);}function s(m,p,E,T,y){var _guard1146,_guard1147,_guard1148;p.isMeshBasicMaterial||p.isMeshLambertMaterial?r(m,p):p.isMeshToonMaterial?(r(m,p),h(m,p)):p.isMeshPhongMaterial?(r(m,p),u(m,p)):p.isMeshStandardMaterial?(r(m,p),d(m,p),_guard1146=p.isMeshPhysicalMaterial,_guard1146?f(m,p,y):_guard1146):p.isMeshMatcapMaterial?(r(m,p),g(m,p)):p.isMeshDepthMaterial?r(m,p):p.isMeshDistanceMaterial?(r(m,p),_(m,p)):p.isMeshNormalMaterial?r(m,p):p.isLineBasicMaterial?(o(m,p),_guard1147=p.isLineDashedMaterial,_guard1147?a(m,p):_guard1147):p.isPointsMaterial?c(m,p,E,T):p.isSpriteMaterial?l(m,p):p.isShadowMaterial?(m.color.value.copy(p.color),m.opacity.value=p.opacity):(_guard1148=p.isShaderMaterial,_guard1148?p.uniformsNeedUpdate=!1:_guard1148);}function r(m,p){var _guard1149,_guard1150,_guard1151,_guard1152,_guard1153,_guard1154,_guard1155,_guard1156,_guard1157,_guard1158,_guard1159,_guard1160,_guard1161,_guard1162,_guard1163,_guard1164,_guard1165,_guard1166;m.opacity.value=p.opacity,_guard1149=p.color,_guard1149?m.diffuse.value.copy(p.color):_guard1149,_guard1150=p.emissive,_guard1150?m.emissive.value.copy(p.emissive).multiplyScalar(p.emissiveIntensity):_guard1150,_guard1151=p.map,_guard1151?(m.map.value=p.map,t(p.map,m.mapTransform)):_guard1151,_guard1152=p.alphaMap,_guard1152?(m.alphaMap.value=p.alphaMap,t(p.alphaMap,m.alphaMapTransform)):_guard1152,_guard1154=p.bumpMap,_guard1154?(m.bumpMap.value=p.bumpMap,t(p.bumpMap,m.bumpMapTransform),m.bumpScale.value=p.bumpScale,_guard1153=p.side===Gt,_guard1153?m.bumpScale.value*=-1:_guard1153):_guard1154,_guard1156=p.normalMap,_guard1156?(m.normalMap.value=p.normalMap,t(p.normalMap,m.normalMapTransform),m.normalScale.value.copy(p.normalScale),_guard1155=p.side===Gt,_guard1155?m.normalScale.value.negate():_guard1155):_guard1156,_guard1157=p.displacementMap,_guard1157?(m.displacementMap.value=p.displacementMap,t(p.displacementMap,m.displacementMapTransform),m.displacementScale.value=p.displacementScale,m.displacementBias.value=p.displacementBias):_guard1157,_guard1158=p.emissiveMap,_guard1158?(m.emissiveMap.value=p.emissiveMap,t(p.emissiveMap,m.emissiveMapTransform)):_guard1158,_guard1159=p.specularMap,_guard1159?(m.specularMap.value=p.specularMap,t(p.specularMap,m.specularMapTransform)):_guard1159,_guard1160=p.alphaTest>0,_guard1160?m.alphaTest.value=p.alphaTest:_guard1160;let E=e.get(p),T=E.envMap,y=E.envMapRotation;_guard1164=T,_guard1164?(m.envMap.value=T,zi.copy(y),zi.x*=-1,zi.y*=-1,zi.z*=-1,_guard1162=(_guard1161=T.isCubeTexture,_guard1161?T.isRenderTargetTexture===!1:_guard1161),_guard1162?(zi.y*=-1,zi.z*=-1):_guard1162,m.envMapRotation.value.setFromMatrix4(K0.makeRotationFromEuler(zi)),m.flipEnvMap.value=(_guard1163=T.isCubeTexture,_guard1163?T.isRenderTargetTexture===!1:_guard1163)?-1:1,m.reflectivity.value=p.reflectivity,m.ior.value=p.ior,m.refractionRatio.value=p.refractionRatio):_guard1164,_guard1165=p.lightMap,_guard1165?(m.lightMap.value=p.lightMap,m.lightMapIntensity.value=p.lightMapIntensity,t(p.lightMap,m.lightMapTransform)):_guard1165,_guard1166=p.aoMap,_guard1166?(m.aoMap.value=p.aoMap,m.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,m.aoMapTransform)):_guard1166;}function o(m,p){var _guard1167;m.diffuse.value.copy(p.color),m.opacity.value=p.opacity,_guard1167=p.map,_guard1167?(m.map.value=p.map,t(p.map,m.mapTransform)):_guard1167;}function a(m,p){m.dashSize.value=p.dashSize,m.totalSize.value=p.dashSize+p.gapSize,m.scale.value=p.scale;}function c(m,p,E,T){var _guard1168,_guard1169,_guard1170;m.diffuse.value.copy(p.color),m.opacity.value=p.opacity,m.size.value=p.size*E,m.scale.value=T*.5,_guard1168=p.map,_guard1168?(m.map.value=p.map,t(p.map,m.uvTransform)):_guard1168,_guard1169=p.alphaMap,_guard1169?(m.alphaMap.value=p.alphaMap,t(p.alphaMap,m.alphaMapTransform)):_guard1169,_guard1170=p.alphaTest>0,_guard1170?m.alphaTest.value=p.alphaTest:_guard1170;}function l(m,p){var _guard1171,_guard1172,_guard1173;m.diffuse.value.copy(p.color),m.opacity.value=p.opacity,m.rotation.value=p.rotation,_guard1171=p.map,_guard1171?(m.map.value=p.map,t(p.map,m.mapTransform)):_guard1171,_guard1172=p.alphaMap,_guard1172?(m.alphaMap.value=p.alphaMap,t(p.alphaMap,m.alphaMapTransform)):_guard1172,_guard1173=p.alphaTest>0,_guard1173?m.alphaTest.value=p.alphaTest:_guard1173;}function u(m,p){m.specular.value.copy(p.specular),m.shininess.value=Math.max(p.shininess,1e-4);}function h(m,p){var _guard1174;_guard1174=p.gradientMap,_guard1174?m.gradientMap.value=p.gradientMap:_guard1174;}function d(m,p){var _guard1175,_guard1176,_guard1177;m.metalness.value=p.metalness,_guard1175=p.metalnessMap,_guard1175?(m.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,m.metalnessMapTransform)):_guard1175,m.roughness.value=p.roughness,_guard1176=p.roughnessMap,_guard1176?(m.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,m.roughnessMapTransform)):_guard1176,_guard1177=p.envMap,_guard1177?m.envMapIntensity.value=p.envMapIntensity:_guard1177;}function f(m,p,E){var _guard1178,_guard1179,_guard1180,_guard1181,_guard1182,_guard1183,_guard1184,_guard1185,_guard1186,_guard1187,_guard1188,_guard1189,_guard1190,_guard1191,_guard1192,_guard1193,_guard1194,_guard1195,_guard1196;m.ior.value=p.ior,_guard1180=p.sheen>0,_guard1180?(m.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),m.sheenRoughness.value=p.sheenRoughness,_guard1178=p.sheenColorMap,_guard1178?(m.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,m.sheenColorMapTransform)):_guard1178,_guard1179=p.sheenRoughnessMap,_guard1179?(m.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,m.sheenRoughnessMapTransform)):_guard1179):_guard1180,_guard1185=p.clearcoat>0,_guard1185?(m.clearcoat.value=p.clearcoat,m.clearcoatRoughness.value=p.clearcoatRoughness,_guard1181=p.clearcoatMap,_guard1181?(m.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,m.clearcoatMapTransform)):_guard1181,_guard1182=p.clearcoatRoughnessMap,_guard1182?(m.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)):_guard1182,_guard1184=p.clearcoatNormalMap,_guard1184?(m.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),_guard1183=p.side===Gt,_guard1183?m.clearcoatNormalScale.value.negate():_guard1183):_guard1184):_guard1185,_guard1186=p.dispersion>0,_guard1186?m.dispersion.value=p.dispersion:_guard1186,_guard1189=p.iridescence>0,_guard1189?(m.iridescence.value=p.iridescence,m.iridescenceIOR.value=p.iridescenceIOR,m.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],_guard1187=p.iridescenceMap,_guard1187?(m.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,m.iridescenceMapTransform)):_guard1187,_guard1188=p.iridescenceThicknessMap,_guard1188?(m.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,m.iridescenceThicknessMapTransform)):_guard1188):_guard1189,_guard1192=p.transmission>0,_guard1192?(m.transmission.value=p.transmission,m.transmissionSamplerMap.value=E.texture,m.transmissionSamplerSize.value.set(E.width,E.height),_guard1190=p.transmissionMap,_guard1190?(m.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,m.transmissionMapTransform)):_guard1190,m.thickness.value=p.thickness,_guard1191=p.thicknessMap,_guard1191?(m.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,m.thicknessMapTransform)):_guard1191,m.attenuationDistance.value=p.attenuationDistance,m.attenuationColor.value.copy(p.attenuationColor)):_guard1192,_guard1194=p.anisotropy>0,_guard1194?(m.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),_guard1193=p.anisotropyMap,_guard1193?(m.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,m.anisotropyMapTransform)):_guard1193):_guard1194,m.specularIntensity.value=p.specularIntensity,m.specularColor.value.copy(p.specularColor),_guard1195=p.specularColorMap,_guard1195?(m.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,m.specularColorMapTransform)):_guard1195,_guard1196=p.specularIntensityMap,_guard1196?(m.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,m.specularIntensityMapTransform)):_guard1196;}function g(m,p){var _guard1197;_guard1197=p.matcap,_guard1197?m.matcap.value=p.matcap:_guard1197;}function _(m,p){let E=e.get(p).light;m.referencePosition.value.setFromMatrixPosition(E.matrixWorld),m.nearDistance.value=E.shadow.camera.near,m.farDistance.value=E.shadow.camera.far;}return{refreshFogUniforms:n,refreshMaterialUniforms:s};}function j0(i,e,t,n){let s={},r={},o=[],a=i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS);function c(E,T){let y=T.program;n.uniformBlockBinding(E,y);}function l(E,T){var _guard1198,_guard1199;let y=s[E.id];_guard1198=y===void 0,_guard1198?(g(E),y=u(E),s[E.id]=y,E.addEventListener(\"dispose\",m)):_guard1198;let R=T.program;n.updateUBOMapping(E,R);let w=e.render.frame;_guard1199=r[E.id]!==w,_guard1199?(d(E),r[E.id]=w):_guard1199;}function u(E){let T=h();E.__bindingPointIndex=T;let y=i.createBuffer(),R=E.__size,w=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,y),i.bufferData(i.UNIFORM_BUFFER,R,w),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,T,y),y;}function h(){for(let E=0;E<a;E++)if(o.indexOf(E)===-1)return o.push(E),E;return console.error(\"THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.\"),0;}function d(E){let T=s[E.id],y=E.uniforms,R=E.__cache;i.bindBuffer(i.UNIFORM_BUFFER,T);for(let w=0,P=y.length;w<P;w++){let F=Array.isArray(y[w])?y[w]:[y[w]];for(let M=0,S=F.length;M<S;M++){let L=F[M];if(f(L,w,M,R)===!0){let z=L.__offset,$=Array.isArray(L.value)?L.value:[L.value],Q=0;for(let O=0;O<$.length;O++){let W=$[O],ae=_(W);typeof W==\"number\"||typeof W==\"boolean\"?(L.__data[0]=W,i.bufferSubData(i.UNIFORM_BUFFER,z+Q,L.__data)):W.isMatrix3?(L.__data[0]=W.elements[0],L.__data[1]=W.elements[1],L.__data[2]=W.elements[2],L.__data[3]=0,L.__data[4]=W.elements[3],L.__data[5]=W.elements[4],L.__data[6]=W.elements[5],L.__data[7]=0,L.__data[8]=W.elements[6],L.__data[9]=W.elements[7],L.__data[10]=W.elements[8],L.__data[11]=0):(W.toArray(L.__data,Q),Q+=ae.storage\/Float32Array.BYTES_PER_ELEMENT);}i.bufferSubData(i.UNIFORM_BUFFER,z,L.__data);}}}i.bindBuffer(i.UNIFORM_BUFFER,null);}function f(E,T,y,R){let w=E.value,P=T+\"_\"+y;if(R[P]===void 0)return typeof w==\"number\"||typeof w==\"boolean\"?R[P]=w:R[P]=w.clone(),!0;{let F=R[P];if(typeof w==\"number\"||typeof w==\"boolean\"){if(F!==w)return R[P]=w,!0;}else if(F.equals(w)===!1)return F.copy(w),!0;}return!1;}function g(E){var _guard1202;let T=E.uniforms,y=0,R=16;for(let P=0,F=T.length;P<F;P++){let M=Array.isArray(T[P])?T[P]:[T[P]];for(let S=0,L=M.length;S<L;S++){let z=M[S],$=Array.isArray(z.value)?z.value:[z.value];for(let Q=0,O=$.length;Q<O;Q++){var _guard1200,_guard1201;let W=$[Q],ae=_(W),H=y%R,q=H%ae.boundary,ce=H+q;y+=q,_guard1201=(_guard1200=ce!==0,_guard1200?R-ce<ae.storage:_guard1200),_guard1201?y+=R-ce:_guard1201,z.__data=new Float32Array(ae.storage\/Float32Array.BYTES_PER_ELEMENT),z.__offset=y,y+=ae.storage;}}}let w=y%R;return _guard1202=w>0,_guard1202?y+=R-w:_guard1202,E.__size=y,E.__cache={},this;}function _(E){let T={boundary:0,storage:0};return typeof E==\"number\"||typeof E==\"boolean\"?(T.boundary=4,T.storage=4):E.isVector2?(T.boundary=8,T.storage=8):E.isVector3||E.isColor?(T.boundary=16,T.storage=12):E.isVector4?(T.boundary=16,T.storage=16):E.isMatrix3?(T.boundary=48,T.storage=48):E.isMatrix4?(T.boundary=64,T.storage=64):E.isTexture?console.warn(\"THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.\"):console.warn(\"THREE.WebGLRenderer: Unsupported uniform value type.\",E),T;}function m(E){let T=E.target;T.removeEventListener(\"dispose\",m);let y=o.indexOf(T.__bindingPointIndex);o.splice(y,1),i.deleteBuffer(s[T.id]),delete s[T.id],delete r[T.id];}function p(){for(let E in s)i.deleteBuffer(s[E]);o=[],s={},r={};}return{bind:c,update:l,dispose:p};}var Ya=class{constructor(e={}){var _guard1234,_guard1381;let{canvas:t=kh(),context:n=null,depth:s=!0,stencil:r=!1,alpha:o=!1,antialias:a=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:l=!1,powerPreference:u=\"default\",failIfMajorPerformanceCaveat:h=!1,reversedDepthBuffer:d=!1}=e;this.isWebGLRenderer=!0;let f;if(n!==null){var _guard1203;if(_guard1203=typeof WebGLRenderingContext<\"u\",_guard1203?n instanceof WebGLRenderingContext:_guard1203)throw new Error(\"THREE.WebGLRenderer: WebGL 1 is not supported since r163.\");f=n.getContextAttributes().alpha;}else f=o;let g=new Uint32Array(4),_=new Int32Array(4),m=null,p=null,E=[],T=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=$n,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let y=this,R=!1;this._outputColorSpace=Vt;let w=0,P=0,F=null,M=-1,S=null,L=new vt(),z=new vt(),$=null,Q=new $e(0),O=0,W=t.width,ae=t.height,H=1,q=null,ce=null,ge=new vt(0,0,W,ae),Pe=new vt(0,0,W,ae),Fe=!1,ve=new ds(),Ie=!1,J=!1,re=new gt(),pe=new N(),me=new vt(),Me={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},Ne=!1;function it(){return F===null?H:1;}let C=n;function tt(v,V){return t.getContext(v,V);}try{var _guard1204;let v={alpha:!0,depth:s,stencil:r,antialias:a,premultipliedAlpha:c,preserveDrawingBuffer:l,powerPreference:u,failIfMajorPerformanceCaveat:h};if(_guard1204=\"setAttribute\"in t,_guard1204?t.setAttribute(\"data-engine\",`three.js r${\"180\"}`):_guard1204,t.addEventListener(\"webglcontextlost\",se,!1),t.addEventListener(\"webglcontextrestored\",ue,!1),t.addEventListener(\"webglcontextcreationerror\",Y,!1),C===null){let V=\"webgl2\";if(C=tt(V,v),C===null)throw tt(V)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\");}}catch(v){throw console.error(\"THREE.WebGLRenderer: \"+v.message),v;}let De,Ae,Se,xe,le,be,Re,Ve,b,x,B,A,I,D,X,G,ie,te,ne,oe,he,fe,ye,ke;function U(){var _guard1205,_guard1206;De=new __(C),De.init(),fe=new Z0(C,De),Ae=new u_(C,De,e,fe),Se=new q0(C,De),_guard1206=(_guard1205=Ae.reversedDepthBuffer,_guard1205?d:_guard1205),_guard1206?Se.buffers.depth.setReversed(!0):_guard1206,xe=new v_(C),le=new L0(),be=new Y0(C,De,Se,le,Ae,fe,xe),Re=new d_(y),Ve=new g_(y),b=new Ap(C),ye=new l_(C,b),x=new x_(C,b,xe,ye),B=new S_(C,x,b,xe),ne=new M_(C,Ae,be),G=new h_(le),A=new D0(y,Re,Ve,De,Ae,ye,G),I=new Q0(y,le),D=new N0(),X=new k0(De),te=new a_(y,Re,Ve,Se,B,f,c),ie=new W0(y,B,Ae),ke=new j0(C,xe,Ae,Se),oe=new c_(C,De,xe),he=new y_(C,De,xe),xe.programs=A.programs,y.capabilities=Ae,y.extensions=De,y.properties=le,y.renderLists=D,y.shadowMap=ie,y.state=Se,y.info=xe;}U();let ee=new Gc(y,C);this.xr=ee,this.getContext=function(){return C;},this.getContextAttributes=function(){return C.getContextAttributes();},this.forceContextLoss=function(){var _guard1207;let v=De.get(\"WEBGL_lose_context\");_guard1207=v,_guard1207?v.loseContext():_guard1207;},this.forceContextRestore=function(){var _guard1208;let v=De.get(\"WEBGL_lose_context\");_guard1208=v,_guard1208?v.restoreContext():_guard1208;},this.getPixelRatio=function(){return H;},this.setPixelRatio=function(v){var _guard1209;_guard1209=v!==void 0,_guard1209?(H=v,this.setSize(W,ae,!1)):_guard1209;},this.getSize=function(v){return v.set(W,ae);},this.setSize=function(v,V,K=!0){var _guard1210;if(ee.isPresenting){console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");return;}W=v,ae=V,t.width=Math.floor(v*H),t.height=Math.floor(V*H),_guard1210=K===!0,_guard1210?(t.style.width=v+\"px\",t.style.height=V+\"px\"):_guard1210,this.setViewport(0,0,v,V);},this.getDrawingBufferSize=function(v){return v.set(W*H,ae*H).floor();},this.setDrawingBufferSize=function(v,V,K){W=v,ae=V,H=K,t.width=Math.floor(v*K),t.height=Math.floor(V*K),this.setViewport(0,0,v,V);},this.getCurrentViewport=function(v){return v.copy(L);},this.getViewport=function(v){return v.copy(ge);},this.setViewport=function(v,V,K,j){v.isVector4?ge.set(v.x,v.y,v.z,v.w):ge.set(v,V,K,j),Se.viewport(L.copy(ge).multiplyScalar(H).round());},this.getScissor=function(v){return v.copy(Pe);},this.setScissor=function(v,V,K,j){v.isVector4?Pe.set(v.x,v.y,v.z,v.w):Pe.set(v,V,K,j),Se.scissor(z.copy(Pe).multiplyScalar(H).round());},this.getScissorTest=function(){return Fe;},this.setScissorTest=function(v){Se.setScissorTest(Fe=v);},this.setOpaqueSort=function(v){q=v;},this.setTransparentSort=function(v){ce=v;},this.getClearColor=function(v){return v.copy(te.getClearColor());},this.setClearColor=function(){te.setClearColor(...arguments);},this.getClearAlpha=function(){return te.getClearAlpha();},this.setClearAlpha=function(){te.setClearAlpha(...arguments);},this.clear=function(v=!0,V=!0,K=!0){var _guard1211,_guard1212;let j=0;if(v){let k=!1;if(F!==null){let de=F.texture.format;k=de===pa||de===fa||de===da;}if(k){let de=F.texture.type,Ee=de===Mn||de===gi||de===_s||de===ys||de===ua||de===ha,Ce=te.getClearColor(),we=te.getClearAlpha(),He=Ce.r,We=Ce.g,Oe=Ce.b;Ee?(g[0]=He,g[1]=We,g[2]=Oe,g[3]=we,C.clearBufferuiv(C.COLOR,0,g)):(_[0]=He,_[1]=We,_[2]=Oe,_[3]=we,C.clearBufferiv(C.COLOR,0,_));}else j|=C.COLOR_BUFFER_BIT;}_guard1211=V,_guard1211?j|=C.DEPTH_BUFFER_BIT:_guard1211,_guard1212=K,_guard1212?(j|=C.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)):_guard1212,C.clear(j);},this.clearColor=function(){this.clear(!0,!1,!1);},this.clearDepth=function(){this.clear(!1,!0,!1);},this.clearStencil=function(){this.clear(!1,!1,!0);},this.dispose=function(){t.removeEventListener(\"webglcontextlost\",se,!1),t.removeEventListener(\"webglcontextrestored\",ue,!1),t.removeEventListener(\"webglcontextcreationerror\",Y,!1),te.dispose(),D.dispose(),X.dispose(),le.dispose(),Re.dispose(),Ve.dispose(),B.dispose(),ye.dispose(),ke.dispose(),A.dispose(),ee.dispose(),ee.removeEventListener(\"sessionstart\",Ge),ee.removeEventListener(\"sessionend\",Pt),ni.stop();};function se(v){v.preventDefault(),console.log(\"THREE.WebGLRenderer: Context Lost.\"),R=!0;}function ue(){console.log(\"THREE.WebGLRenderer: Context Restored.\"),R=!1;let v=xe.autoReset,V=ie.enabled,K=ie.autoUpdate,j=ie.needsUpdate,k=ie.type;U(),xe.autoReset=v,ie.enabled=V,ie.autoUpdate=K,ie.needsUpdate=j,ie.type=k;}function Y(v){console.error(\"THREE.WebGLRenderer: A WebGL context could not be created. Reason: \",v.statusMessage);}function Z(v){let V=v.target;V.removeEventListener(\"dispose\",Z),_e(V);}function _e(v){Le(v),le.remove(v);}function Le(v){var _guard1213,_guard1214;let V=le.get(v).programs;_guard1214=V!==void 0,_guard1214?(V.forEach(function(K){A.releaseProgram(K);}),_guard1213=v.isShaderMaterial,_guard1213?A.releaseShaderCache(v):_guard1213):_guard1214;}this.renderBufferDirect=function(v,V,K,j,k,de){var _guard1215,_guard1216,_guard1217,_guard1218,_guard1219,_guard1221;_guard1215=V===null,_guard1215?V=Me:_guard1215;let Ee=(_guard1216=k.isMesh,_guard1216?k.matrixWorld.determinant()<0:_guard1216),Ce=wf(v,V,K,j,k);Se.setMaterial(j,Ee);let we=K.index,He=1;if(j.wireframe===!0){if(we=x.getWireframeAttribute(K),we===void 0)return;He=2;}let We=K.drawRange,Oe=K.attributes.position,st=We.start*He,ht=(We.start+We.count)*He;_guard1217=de!==null,_guard1217?(st=Math.max(st,de.start*He),ht=Math.min(ht,(de.start+de.count)*He)):_guard1217,we!==null?(st=Math.max(st,0),ht=Math.min(ht,we.count)):(_guard1218=Oe!=null,_guard1218?(st=Math.max(st,0),ht=Math.min(ht,Oe.count)):_guard1218);let St=ht-st;if(St<0||St===1\/0)return;ye.setup(k,j,Ce,K,we);let pt,dt=oe;if(_guard1219=we!==null,_guard1219?(pt=b.get(we),dt=he,dt.setIndex(pt)):_guard1219,k.isMesh)j.wireframe===!0?(Se.setLineWidth(j.wireframeLinewidth*it()),dt.setMode(C.LINES)):dt.setMode(C.TRIANGLES);else if(k.isLine){var _guard1220;let Be=j.linewidth;_guard1220=Be===void 0,_guard1220?Be=1:_guard1220,Se.setLineWidth(Be*it()),k.isLineSegments?dt.setMode(C.LINES):k.isLineLoop?dt.setMode(C.LINE_LOOP):dt.setMode(C.LINE_STRIP);}else k.isPoints?dt.setMode(C.POINTS):(_guard1221=k.isSprite,_guard1221?dt.setMode(C.TRIANGLES):_guard1221);if(k.isBatchedMesh){if(k._multiDrawInstances!==null)cs(\"THREE.WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection.\"),dt.renderMultiDrawInstances(k._multiDrawStarts,k._multiDrawCounts,k._multiDrawCount,k._multiDrawInstances);else if(De.get(\"WEBGL_multi_draw\"))dt.renderMultiDraw(k._multiDrawStarts,k._multiDrawCounts,k._multiDrawCount);else{let Be=k._multiDrawStarts,xt=k._multiDrawCounts,ot=k._multiDrawCount,$t=we?b.get(we).bytesPerElement:1,Zi=le.get(j).currentProgram.getUniforms();for(let Jt=0;Jt<ot;Jt++)Zi.setValue(C,\"_gl_DrawID\",Jt),dt.render(Be[Jt]\/$t,xt[Jt]);}}else if(k.isInstancedMesh)dt.renderInstances(st,St,k.count);else if(K.isInstancedBufferGeometry){let Be=K._maxInstanceCount!==void 0?K._maxInstanceCount:1\/0,xt=Math.min(K.instanceCount,Be);dt.renderInstances(st,St,xt);}else dt.render(st,St);};function je(v,V,K){var _guard1222,_guard1223;(_guard1223=(_guard1222=v.transparent===!0,_guard1222?v.side===wn:_guard1222),_guard1223?v.forceSinglePass===!1:_guard1223)?(v.side=Gt,v.needsUpdate=!0,Xr(v,V,K),v.side=Wn,v.needsUpdate=!0,Xr(v,V,K),v.side=wn):Xr(v,V,K);}this.compile=function(v,V,K=null){var _guard1224,_guard1231;_guard1224=K===null,_guard1224?K=v:_guard1224,p=X.get(K),p.init(V),T.push(p),K.traverseVisible(function(k){var _guard1225,_guard1226,_guard1227;_guard1227=(_guard1225=k.isLight,_guard1225?k.layers.test(V.layers):_guard1225),_guard1227?(p.pushLight(k),_guard1226=k.castShadow,_guard1226?p.pushShadow(k):_guard1226):_guard1227;}),_guard1231=v!==K,_guard1231?v.traverseVisible(function(k){var _guard1228,_guard1229,_guard1230;_guard1230=(_guard1228=k.isLight,_guard1228?k.layers.test(V.layers):_guard1228),_guard1230?(p.pushLight(k),_guard1229=k.castShadow,_guard1229?p.pushShadow(k):_guard1229):_guard1230;}):_guard1231,p.setupLights();let j=new Set();return v.traverse(function(k){if(!(k.isMesh||k.isPoints||k.isLine||k.isSprite))return;let de=k.material;if(de)if(Array.isArray(de))for(let Ee=0;Ee<de.length;Ee++){let Ce=de[Ee];je(Ce,K,k),j.add(Ce);}else je(de,K,k),j.add(de);}),p=T.pop(),j;},this.compileAsync=function(v,V,K=null){let j=this.compile(v,V,K);return new Promise(k=>{function de(){if(j.forEach(function(Ee){var _guard1232;_guard1232=le.get(Ee).currentProgram.isReady(),_guard1232?j.delete(Ee):_guard1232;}),j.size===0){k(v);return;}setTimeout(de,10);}De.get(\"KHR_parallel_shader_compile\")!==null?de():setTimeout(de,10);});};let Ue=null;function Mt(v){var _guard1233;_guard1233=Ue,_guard1233?Ue(v):_guard1233;}function Ge(){ni.stop();}function Pt(){ni.start();}let ni=new md();ni.setAnimationLoop(Mt),_guard1234=typeof self<\"u\",_guard1234?ni.setContext(self):_guard1234,this.setAnimationLoop=function(v){Ue=v,ee.setAnimationLoop(v),v===null?ni.stop():ni.start();},ee.addEventListener(\"sessionstart\",Ge),ee.addEventListener(\"sessionend\",Pt),this.render=function(v,V){var _guard1235,_guard1236,_guard1237,_guard1238,_guard1239,_guard1240,_guard1241,_guard1242,_guard1243,_guard1245,_guard1246,_guard1247,_guard1248,_guard1249,_guard1251,_guard1252,_guard1253,_guard1254,_guard1255,_guard1256;if(_guard1235=V!==void 0,_guard1235?V.isCamera!==!0:_guard1235){console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");return;}if(R===!0)return;if(_guard1236=v.matrixWorldAutoUpdate===!0,_guard1236?v.updateMatrixWorld():_guard1236,_guard1238=(_guard1237=V.parent===null,_guard1237?V.matrixWorldAutoUpdate===!0:_guard1237),_guard1238?V.updateMatrixWorld():_guard1238,_guard1241=(_guard1239=ee.enabled===!0,_guard1239?ee.isPresenting===!0:_guard1239),_guard1241?(_guard1240=ee.cameraAutoUpdate===!0,_guard1240?ee.updateCamera(V):_guard1240,V=ee.getCamera()):_guard1241,_guard1242=v.isScene===!0,_guard1242?v.onBeforeRender(y,v,V,F):_guard1242,p=X.get(v,T.length),p.init(V),T.push(p),re.multiplyMatrices(V.projectionMatrix,V.matrixWorldInverse),ve.setFromProjectionMatrix(re,_n,V.reversedDepth),J=this.localClippingEnabled,Ie=G.init(this.clippingPlanes,J),m=D.get(v,E.length),m.init(),E.push(m),_guard1243=ee.enabled===!0,_guard1243?ee.isPresenting===!0:_guard1243){var _guard1244;let de=y.xr.getDepthSensingMesh();_guard1244=de!==null,_guard1244?Yi(de,V,-1\/0,y.sortObjects):_guard1244;}Yi(v,V,0,y.sortObjects),m.finish(),_guard1245=y.sortObjects===!0,_guard1245?m.sort(q,ce):_guard1245,Ne=ee.enabled===!1||ee.isPresenting===!1||ee.hasDepthSensing()===!1,_guard1246=Ne,_guard1246?te.addToRenderList(m,v):_guard1246,this.info.render.frame++,_guard1247=Ie===!0,_guard1247?G.beginShadows():_guard1247;let K=p.state.shadowsArray;ie.render(K,v,V),_guard1248=Ie===!0,_guard1248?G.endShadows():_guard1248,_guard1249=this.info.autoReset===!0,_guard1249?this.info.reset():_guard1249;let j=m.opaque,k=m.transmissive;if(p.setupLights(),V.isArrayCamera){var _guard1250;let de=V.cameras;if(k.length>0)for(let Ee=0,Ce=de.length;Ee<Ce;Ee++){let we=de[Ee];wu(j,k,v,we);}_guard1250=Ne,_guard1250?te.render(v):_guard1250;for(let Ee=0,Ce=de.length;Ee<Ce;Ee++){let we=de[Ee];Au(m,v,we,we.viewport);}}else _guard1251=k.length>0,_guard1251?wu(j,k,v,V):_guard1251,_guard1252=Ne,_guard1252?te.render(v):_guard1252,Au(m,v,V);_guard1254=(_guard1253=F!==null,_guard1253?P===0:_guard1253),_guard1254?(be.updateMultisampleRenderTarget(F),be.updateRenderTargetMipmap(F)):_guard1254,_guard1255=v.isScene===!0,_guard1255?v.onAfterRender(y,v,V):_guard1255,ye.resetDefaultState(),M=-1,S=null,T.pop(),T.length>0?(p=T[T.length-1],_guard1256=Ie===!0,_guard1256?G.setGlobalState(y.clippingPlanes,p.state.camera):_guard1256):p=null,E.pop(),E.length>0?m=E[E.length-1]:m=null;};function Yi(v,V,K,j){if(v.visible===!1)return;if(v.layers.test(V.layers)){var _guard1257,_guard1258,_guard1261;if(v.isGroup)K=v.renderOrder;else if(v.isLOD)_guard1257=v.autoUpdate===!0,_guard1257?v.update(V):_guard1257;else if(v.isLight)p.pushLight(v),_guard1258=v.castShadow,_guard1258?p.pushShadow(v):_guard1258;else if(v.isSprite){if(!v.frustumCulled||ve.intersectsSprite(v)){var _guard1259,_guard1260;_guard1259=j,_guard1259?me.setFromMatrixPosition(v.matrixWorld).applyMatrix4(re):_guard1259;let Ee=B.update(v),Ce=v.material;_guard1260=Ce.visible,_guard1260?m.push(v,Ee,Ce,K,me.z,null):_guard1260;}}else if(_guard1261=v.isMesh||v.isLine||v.isPoints,_guard1261?!v.frustumCulled||ve.intersectsObject(v):_guard1261){var _guard1262,_guard1263,_guard1264,_guard1267;let Ee=B.update(v),Ce=v.material;if(_guard1264=j,_guard1264?(v.boundingSphere!==void 0?(_guard1262=v.boundingSphere===null,_guard1262?v.computeBoundingSphere():_guard1262,me.copy(v.boundingSphere.center)):(_guard1263=Ee.boundingSphere===null,_guard1263?Ee.computeBoundingSphere():_guard1263,me.copy(Ee.boundingSphere.center)),me.applyMatrix4(v.matrixWorld).applyMatrix4(re)):_guard1264,Array.isArray(Ce)){let we=Ee.groups;for(let He=0,We=we.length;He<We;He++){var _guard1265,_guard1266;let Oe=we[He],st=Ce[Oe.materialIndex];_guard1266=(_guard1265=st,_guard1265?st.visible:_guard1265),_guard1266?m.push(v,Ee,st,K,me.z,Oe):_guard1266;}}else _guard1267=Ce.visible,_guard1267?m.push(v,Ee,Ce,K,me.z,null):_guard1267;}}let de=v.children;for(let Ee=0,Ce=de.length;Ee<Ce;Ee++)Yi(de[Ee],V,K,j);}function Au(v,V,K,j){var _guard1268,_guard1269,_guard1270,_guard1271,_guard1272;let k=v.opaque,de=v.transmissive,Ee=v.transparent;p.setupLightsView(K),_guard1268=Ie===!0,_guard1268?G.setGlobalState(y.clippingPlanes,K):_guard1268,_guard1269=j,_guard1269?Se.viewport(L.copy(j)):_guard1269,_guard1270=k.length>0,_guard1270?Wr(k,V,K):_guard1270,_guard1271=de.length>0,_guard1271?Wr(de,V,K):_guard1271,_guard1272=Ee.length>0,_guard1272?Wr(Ee,V,K):_guard1272,Se.buffers.depth.setTest(!0),Se.buffers.depth.setMask(!0),Se.buffers.color.setMask(!0),Se.setPolygonOffset(!1);}function wu(v,V,K,j){var _guard1273,_guard1274,_guard1275,_guard1276,_guard1277,_guard1280;if((K.isScene===!0?K.overrideMaterial:null)!==null)return;_guard1273=p.state.transmissionRenderTarget[j.id]===void 0,_guard1273?p.state.transmissionRenderTarget[j.id]=new En(1,1,{generateMipmaps:!0,type:De.has(\"EXT_color_buffer_half_float\")||De.has(\"EXT_color_buffer_float\")?xs:Mn,minFilter:mi,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:rt.workingColorSpace}):_guard1273;let de=p.state.transmissionRenderTarget[j.id],Ee=j.viewport||L;de.setSize(Ee.z*y.transmissionResolutionScale,Ee.w*y.transmissionResolutionScale);let Ce=y.getRenderTarget(),we=y.getActiveCubeFace(),He=y.getActiveMipmapLevel();y.setRenderTarget(de),y.getClearColor(Q),O=y.getClearAlpha(),_guard1274=O<1,_guard1274?y.setClearColor(16777215,.5):_guard1274,y.clear(),_guard1275=Ne,_guard1275?te.render(K):_guard1275;let We=y.toneMapping;y.toneMapping=$n;let Oe=j.viewport;if(_guard1276=j.viewport!==void 0,_guard1276?j.viewport=void 0:_guard1276,p.setupLightsView(j),_guard1277=Ie===!0,_guard1277?G.setGlobalState(y.clippingPlanes,j):_guard1277,Wr(v,K,j),be.updateMultisampleRenderTarget(de),be.updateRenderTargetMipmap(de),De.has(\"WEBGL_multisampled_render_to_texture\")===!1){var _guard1279;let st=!1;for(let ht=0,St=V.length;ht<St;ht++){var _guard1278;let pt=V[ht],dt=pt.object,Be=pt.geometry,xt=pt.material,ot=pt.group;if(_guard1278=xt.side===wn,_guard1278?dt.layers.test(j.layers):_guard1278){let $t=xt.side;xt.side=Gt,xt.needsUpdate=!0,Cu(dt,K,j,Be,xt,ot),xt.side=$t,xt.needsUpdate=!0,st=!0;}}_guard1279=st===!0,_guard1279?(be.updateMultisampleRenderTarget(de),be.updateRenderTargetMipmap(de)):_guard1279;}y.setRenderTarget(Ce,we,He),y.setClearColor(Q,O),_guard1280=Oe!==void 0,_guard1280?j.viewport=Oe:_guard1280,y.toneMapping=We;}function Wr(v,V,K){let j=V.isScene===!0?V.overrideMaterial:null;for(let k=0,de=v.length;k<de;k++){var _guard1281,_guard1282,_guard1283;let Ee=v[k],Ce=Ee.object,we=Ee.geometry,He=Ee.group,We=Ee.material;_guard1282=(_guard1281=We.allowOverride===!0,_guard1281?j!==null:_guard1281),_guard1282?We=j:_guard1282,_guard1283=Ce.layers.test(K.layers),_guard1283?Cu(Ce,V,K,we,We,He):_guard1283;}}function Cu(v,V,K,j,k,de){var _guard1284,_guard1285;v.onBeforeRender(y,V,K,j,k,de),v.modelViewMatrix.multiplyMatrices(K.matrixWorldInverse,v.matrixWorld),v.normalMatrix.getNormalMatrix(v.modelViewMatrix),k.onBeforeRender(y,V,K,j,v,de),(_guard1285=(_guard1284=k.transparent===!0,_guard1284?k.side===wn:_guard1284),_guard1285?k.forceSinglePass===!1:_guard1285)?(k.side=Gt,k.needsUpdate=!0,y.renderBufferDirect(K,V,j,k,v,de),k.side=Wn,k.needsUpdate=!0,y.renderBufferDirect(K,V,j,k,v,de),k.side=wn):y.renderBufferDirect(K,V,j,k,v,de),v.onAfterRender(y,V,K,j,k,de);}function Xr(v,V,K){var _guard1286,_guard1287,_guard1288,_guard1290,_guard1291,_guard1292;_guard1286=V.isScene!==!0,_guard1286?V=Me:_guard1286;let j=le.get(v),k=p.state.lights,de=p.state.shadowsArray,Ee=k.state.version,Ce=A.getParameters(v,k.state,de,V,K),we=A.getProgramCacheKey(Ce),He=j.programs;j.environment=v.isMeshStandardMaterial?V.environment:null,j.fog=V.fog,j.envMap=(v.isMeshStandardMaterial?Ve:Re).get(v.envMap||j.environment),j.envMapRotation=(_guard1287=j.environment!==null,_guard1287?v.envMap===null:_guard1287)?V.environmentRotation:v.envMapRotation,_guard1288=He===void 0,_guard1288?(v.addEventListener(\"dispose\",Z),He=new Map(),j.programs=He):_guard1288;let We=He.get(we);if(We!==void 0){var _guard1289;if(_guard1289=j.currentProgram===We,_guard1289?j.lightsStateVersion===Ee:_guard1289)return Iu(v,Ce),We;}else Ce.uniforms=A.getUniforms(v),v.onBeforeCompile(Ce,y),We=A.acquireProgram(Ce,we),He.set(we,We),j.uniforms=Ce.uniforms;let Oe=j.uniforms;return _guard1291=(_guard1290=!v.isShaderMaterial,_guard1290?!v.isRawShaderMaterial:_guard1290)||v.clipping===!0,_guard1291?Oe.clippingPlanes=G.uniform:_guard1291,Iu(v,Ce),j.needsLights=Rf(v),j.lightsStateVersion=Ee,_guard1292=j.needsLights,_guard1292?(Oe.ambientLightColor.value=k.state.ambient,Oe.lightProbe.value=k.state.probe,Oe.directionalLights.value=k.state.directional,Oe.directionalLightShadows.value=k.state.directionalShadow,Oe.spotLights.value=k.state.spot,Oe.spotLightShadows.value=k.state.spotShadow,Oe.rectAreaLights.value=k.state.rectArea,Oe.ltc_1.value=k.state.rectAreaLTC1,Oe.ltc_2.value=k.state.rectAreaLTC2,Oe.pointLights.value=k.state.point,Oe.pointLightShadows.value=k.state.pointShadow,Oe.hemisphereLights.value=k.state.hemi,Oe.directionalShadowMap.value=k.state.directionalShadowMap,Oe.directionalShadowMatrix.value=k.state.directionalShadowMatrix,Oe.spotShadowMap.value=k.state.spotShadowMap,Oe.spotLightMatrix.value=k.state.spotLightMatrix,Oe.spotLightMap.value=k.state.spotLightMap,Oe.pointShadowMap.value=k.state.pointShadowMap,Oe.pointShadowMatrix.value=k.state.pointShadowMatrix):_guard1292,j.currentProgram=We,j.uniformsList=null,We;}function Ru(v){if(v.uniformsList===null){let V=v.currentProgram.getUniforms();v.uniformsList=bs.seqWithValue(V.seq,v.uniforms);}return v.uniformsList;}function Iu(v,V){let K=le.get(v);K.outputColorSpace=V.outputColorSpace,K.batching=V.batching,K.batchingColor=V.batchingColor,K.instancing=V.instancing,K.instancingColor=V.instancingColor,K.instancingMorph=V.instancingMorph,K.skinning=V.skinning,K.morphTargets=V.morphTargets,K.morphNormals=V.morphNormals,K.morphColors=V.morphColors,K.morphTargetsCount=V.morphTargetsCount,K.numClippingPlanes=V.numClippingPlanes,K.numIntersection=V.numClipIntersection,K.vertexAlphas=V.vertexAlphas,K.vertexTangents=V.vertexTangents,K.toneMapping=V.toneMapping;}function wf(v,V,K,j,k){var _guard1293,_guard1294,_guard1295,_guard1296,_guard1297,_guard1298,_guard1299,_guard1301,_guard1302,_guard1303,_guard1304,_guard1305,_guard1306,_guard1307,_guard1308,_guard1309,_guard1310,_guard1311,_guard1312,_guard1313,_guard1314,_guard1315,_guard1316,_guard1317,_guard1318,_guard1319,_guard1320,_guard1321,_guard1322,_guard1323,_guard1324,_guard1325,_guard1334,_guard1335,_guard1336,_guard1337,_guard1338,_guard1339,_guard1340,_guard1341,_guard1342,_guard1343,_guard1344,_guard1345,_guard1346,_guard1347,_guard1348,_guard1349,_guard1350;_guard1293=V.isScene!==!0,_guard1293?V=Me:_guard1293,be.resetTextureUnits();let de=V.fog,Ee=j.isMeshStandardMaterial?V.environment:null,Ce=F===null?y.outputColorSpace:F.isXRRenderTarget===!0?F.texture.colorSpace:Ri,we=(j.isMeshStandardMaterial?Ve:Re).get(j.envMap||Ee),He=(_guard1295=(_guard1294=j.vertexColors===!0,_guard1294?!!K.attributes.color:_guard1294),_guard1295?K.attributes.color.itemSize===4:_guard1295),We=(_guard1296=!!K.attributes.tangent,_guard1296?!!j.normalMap||j.anisotropy>0:_guard1296),Oe=!!K.morphAttributes.position,st=!!K.morphAttributes.normal,ht=!!K.morphAttributes.color,St=$n;_guard1298=(_guard1297=j.toneMapped,_guard1297?F===null||F.isXRRenderTarget===!0:_guard1297),_guard1298?St=y.toneMapping:_guard1298;let pt=K.morphAttributes.position||K.morphAttributes.normal||K.morphAttributes.color,dt=pt!==void 0?pt.length:0,Be=le.get(j),xt=p.state.lights;if(_guard1299=Ie===!0,_guard1299?J===!0||v!==S:_guard1299){var _guard1300;let zt=(_guard1300=v===S,_guard1300?j.id===M:_guard1300);G.setState(j,v,zt);}let ot=!1;j.version===Be.__version?(_guard1322=(_guard1301=Be.needsLights,_guard1301?Be.lightsStateVersion!==xt.state.version:_guard1301)||Be.outputColorSpace!==Ce||(_guard1302=k.isBatchedMesh,_guard1302?Be.batching===!1:_guard1302)||(_guard1303=!k.isBatchedMesh,_guard1303?Be.batching===!0:_guard1303)||(_guard1305=(_guard1304=k.isBatchedMesh,_guard1304?Be.batchingColor===!0:_guard1304),_guard1305?k.colorTexture===null:_guard1305)||(_guard1307=(_guard1306=k.isBatchedMesh,_guard1306?Be.batchingColor===!1:_guard1306),_guard1307?k.colorTexture!==null:_guard1307)||(_guard1308=k.isInstancedMesh,_guard1308?Be.instancing===!1:_guard1308)||(_guard1309=!k.isInstancedMesh,_guard1309?Be.instancing===!0:_guard1309)||(_guard1310=k.isSkinnedMesh,_guard1310?Be.skinning===!1:_guard1310)||(_guard1311=!k.isSkinnedMesh,_guard1311?Be.skinning===!0:_guard1311)||(_guard1313=(_guard1312=k.isInstancedMesh,_guard1312?Be.instancingColor===!0:_guard1312),_guard1313?k.instanceColor===null:_guard1313)||(_guard1315=(_guard1314=k.isInstancedMesh,_guard1314?Be.instancingColor===!1:_guard1314),_guard1315?k.instanceColor!==null:_guard1315)||(_guard1317=(_guard1316=k.isInstancedMesh,_guard1316?Be.instancingMorph===!0:_guard1316),_guard1317?k.morphTexture===null:_guard1317)||(_guard1319=(_guard1318=k.isInstancedMesh,_guard1318?Be.instancingMorph===!1:_guard1318),_guard1319?k.morphTexture!==null:_guard1319)||Be.envMap!==we||(_guard1320=j.fog===!0,_guard1320?Be.fog!==de:_guard1320)||(_guard1321=Be.numClippingPlanes!==void 0,_guard1321?Be.numClippingPlanes!==G.numPlanes||Be.numIntersection!==G.numIntersection:_guard1321)||Be.vertexAlphas!==He||Be.vertexTangents!==We||Be.morphTargets!==Oe||Be.morphNormals!==st||Be.morphColors!==ht||Be.toneMapping!==St||Be.morphTargetsCount!==dt,_guard1322?ot=!0:_guard1322):(ot=!0,Be.__version=j.version);let $t=Be.currentProgram;_guard1323=ot===!0,_guard1323?$t=Xr(j,V,k):_guard1323;let Zi=!1,Jt=!1,Os=!1,yt=$t.getUniforms(),sn=Be.uniforms;if(_guard1324=Se.useProgram($t.program),_guard1324?(Zi=!0,Jt=!0,Os=!0):_guard1324,_guard1325=j.id!==M,_guard1325?(M=j.id,Jt=!0):_guard1325,Zi||S!==v){var _guard1326,_guard1327,_guard1328,_guard1329,_guard1330,_guard1331;_guard1327=(_guard1326=Se.buffers.depth.getReversed(),_guard1326?v.reversedDepth!==!0:_guard1326),_guard1327?(v._reversedDepth=!0,v.updateProjectionMatrix()):_guard1327,yt.setValue(C,\"projectionMatrix\",v.projectionMatrix),yt.setValue(C,\"viewMatrix\",v.matrixWorldInverse);let Xt=yt.map.cameraPosition;_guard1328=Xt!==void 0,_guard1328?Xt.setValue(C,pe.setFromMatrixPosition(v.matrixWorld)):_guard1328,_guard1329=Ae.logarithmicDepthBuffer,_guard1329?yt.setValue(C,\"logDepthBufFC\",2\/(Math.log(v.far+1)\/Math.LN2)):_guard1329,_guard1330=j.isMeshPhongMaterial||j.isMeshToonMaterial||j.isMeshLambertMaterial||j.isMeshBasicMaterial||j.isMeshStandardMaterial||j.isShaderMaterial,_guard1330?yt.setValue(C,\"isOrthographic\",v.isOrthographicCamera===!0):_guard1330,_guard1331=S!==v,_guard1331?(S=v,Jt=!0,Os=!0):_guard1331;}if(k.isSkinnedMesh){var _guard1332,_guard1333;yt.setOptional(C,k,\"bindMatrix\"),yt.setOptional(C,k,\"bindMatrixInverse\");let zt=k.skeleton;_guard1333=zt,_guard1333?(_guard1332=zt.boneTexture===null,_guard1332?zt.computeBoneTexture():_guard1332,yt.setValue(C,\"boneTexture\",zt.boneTexture,be)):_guard1333;}_guard1335=k.isBatchedMesh,_guard1335?(yt.setOptional(C,k,\"batchingTexture\"),yt.setValue(C,\"batchingTexture\",k._matricesTexture,be),yt.setOptional(C,k,\"batchingIdTexture\"),yt.setValue(C,\"batchingIdTexture\",k._indirectTexture,be),yt.setOptional(C,k,\"batchingColorTexture\"),_guard1334=k._colorsTexture!==null,_guard1334?yt.setValue(C,\"batchingColorTexture\",k._colorsTexture,be):_guard1334):_guard1335;let rn=K.morphAttributes;if(_guard1336=rn.position!==void 0||rn.normal!==void 0||rn.color!==void 0,_guard1336?ne.update(k,K,$t):_guard1336,_guard1337=Jt||Be.receiveShadow!==k.receiveShadow,_guard1337?(Be.receiveShadow=k.receiveShadow,yt.setValue(C,\"receiveShadow\",k.receiveShadow)):_guard1337,_guard1340=(_guard1338=j.isMeshGouraudMaterial,_guard1338?j.envMap!==null:_guard1338),_guard1340?(sn.envMap.value=we,sn.flipEnvMap.value=(_guard1339=we.isCubeTexture,_guard1339?we.isRenderTargetTexture===!1:_guard1339)?-1:1):_guard1340,_guard1343=(_guard1342=(_guard1341=j.isMeshStandardMaterial,_guard1341?j.envMap===null:_guard1341),_guard1342?V.environment!==null:_guard1342),_guard1343?sn.envMapIntensity.value=V.environmentIntensity:_guard1343,_guard1347=Jt,_guard1347?(yt.setValue(C,\"toneMappingExposure\",y.toneMappingExposure),_guard1344=Be.needsLights,_guard1344?Cf(sn,Os):_guard1344,_guard1346=(_guard1345=de,_guard1345?j.fog===!0:_guard1345),_guard1346?I.refreshFogUniforms(sn,de):_guard1346,I.refreshMaterialUniforms(sn,j,H,ae,p.state.transmissionRenderTarget[v.id]),bs.upload(C,Ru(Be),sn,be)):_guard1347,_guard1349=(_guard1348=j.isShaderMaterial,_guard1348?j.uniformsNeedUpdate===!0:_guard1348),_guard1349?(bs.upload(C,Ru(Be),sn,be),j.uniformsNeedUpdate=!1):_guard1349,_guard1350=j.isSpriteMaterial,_guard1350?yt.setValue(C,\"center\",k.center):_guard1350,yt.setValue(C,\"modelViewMatrix\",k.modelViewMatrix),yt.setValue(C,\"normalMatrix\",k.normalMatrix),yt.setValue(C,\"modelMatrix\",k.matrixWorld),j.isShaderMaterial||j.isRawShaderMaterial){let zt=j.uniformsGroups;for(let Xt=0,bl=zt.length;Xt<bl;Xt++){let Mi=zt[Xt];ke.update(Mi,$t),ke.bind(Mi,$t);}}return $t;}function Cf(v,V){v.ambientLightColor.needsUpdate=V,v.lightProbe.needsUpdate=V,v.directionalLights.needsUpdate=V,v.directionalLightShadows.needsUpdate=V,v.pointLights.needsUpdate=V,v.pointLightShadows.needsUpdate=V,v.spotLights.needsUpdate=V,v.spotLightShadows.needsUpdate=V,v.rectAreaLights.needsUpdate=V,v.hemisphereLights.needsUpdate=V;}function Rf(v){var _guard1351;return v.isMeshLambertMaterial||v.isMeshToonMaterial||v.isMeshPhongMaterial||v.isMeshStandardMaterial||v.isShadowMaterial||(_guard1351=v.isShaderMaterial,_guard1351?v.lights===!0:_guard1351);}this.getActiveCubeFace=function(){return w;},this.getActiveMipmapLevel=function(){return P;},this.getRenderTarget=function(){return F;},this.setRenderTargetTextures=function(v,V,K){var _guard1352;let j=le.get(v);j.__autoAllocateDepthBuffer=v.resolveDepthBuffer===!1,_guard1352=j.__autoAllocateDepthBuffer===!1,_guard1352?j.__useRenderToTexture=!1:_guard1352,le.get(v.texture).__webglTexture=V,le.get(v.depthTexture).__webglTexture=j.__autoAllocateDepthBuffer?void 0:K,j.__hasExternalTextures=!0;},this.setRenderTargetFramebuffer=function(v,V){let K=le.get(v);K.__webglFramebuffer=V,K.__useDefaultFramebuffer=V===void 0;};let If=C.createFramebuffer();this.setRenderTarget=function(v,V=0,K=0){var _guard1357,_guard1358,_guard1359,_guard1360;F=v,w=V,P=K;let j=!0,k=null,de=!1,Ee=!1;if(v){var _guard1355,_guard1356;let we=le.get(v);if(we.__useDefaultFramebuffer!==void 0)Se.bindFramebuffer(C.FRAMEBUFFER,null),j=!1;else if(we.__webglFramebuffer===void 0)be.setupRenderTarget(v);else if(we.__hasExternalTextures)be.rebindTextures(v,le.get(v.texture).__webglTexture,le.get(v.depthTexture).__webglTexture);else if(v.depthBuffer){let Oe=v.depthTexture;if(we.__boundDepthTexture!==Oe){var _guard1353,_guard1354;if(_guard1354=(_guard1353=Oe!==null,_guard1353?le.has(Oe):_guard1353),_guard1354?v.width!==Oe.image.width||v.height!==Oe.image.height:_guard1354)throw new Error(\"WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.\");be.setupDepthRenderbuffer(v);}}let He=v.texture;_guard1355=He.isData3DTexture||He.isDataArrayTexture||He.isCompressedArrayTexture,_guard1355?Ee=!0:_guard1355;let We=le.get(v).__webglFramebuffer;v.isWebGLCubeRenderTarget?(Array.isArray(We[V])?k=We[V][K]:k=We[V],de=!0):(_guard1356=v.samples>0,_guard1356?be.useMultisampledRTT(v)===!1:_guard1356)?k=le.get(v).__webglMultisampledFramebuffer:Array.isArray(We)?k=We[K]:k=We,L.copy(v.viewport),z.copy(v.scissor),$=v.scissorTest;}else L.copy(ge).multiplyScalar(H).floor(),z.copy(Pe).multiplyScalar(H).floor(),$=Fe;if(_guard1357=K!==0,_guard1357?k=If:_guard1357,_guard1359=(_guard1358=Se.bindFramebuffer(C.FRAMEBUFFER,k),_guard1358?j:_guard1358),_guard1359?Se.drawBuffers(v,k):_guard1359,Se.viewport(L),Se.scissor(z),Se.setScissorTest($),de){let we=le.get(v.texture);C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+V,we.__webglTexture,K);}else if(Ee){let we=V;for(let He=0;He<v.textures.length;He++){let We=le.get(v.textures[He]);C.framebufferTextureLayer(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0+He,We.__webglTexture,K,we);}}else if(_guard1360=v!==null,_guard1360?K!==0:_guard1360){let we=le.get(v.texture);C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_2D,we.__webglTexture,K);}M=-1;},this.readRenderTargetPixels=function(v,V,K,j,k,de,Ee,Ce=0){var _guard1361,_guard1362,_guard1363;if(!(_guard1361=v,_guard1361?v.isWebGLRenderTarget:_guard1361)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");return;}let we=le.get(v).__webglFramebuffer;if(_guard1363=(_guard1362=v.isWebGLCubeRenderTarget,_guard1362?Ee!==void 0:_guard1362),_guard1363?we=we[Ee]:_guard1363,we){Se.bindFramebuffer(C.FRAMEBUFFER,we);try{var _guard1364,_guard1365,_guard1366,_guard1367,_guard1368;let He=v.textures[Ce],We=He.format,Oe=He.type;if(!Ae.textureFormatReadable(We)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");return;}if(!Ae.textureTypeReadable(Oe)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");return;}_guard1368=(_guard1366=(_guard1365=(_guard1364=V>=0,_guard1364?V<=v.width-j:_guard1364),_guard1365?K>=0:_guard1365),_guard1366?K<=v.height-k:_guard1366),_guard1368?(_guard1367=v.textures.length>1,_guard1367?C.readBuffer(C.COLOR_ATTACHMENT0+Ce):_guard1367,C.readPixels(V,K,j,k,fe.convert(We),fe.convert(Oe),de)):_guard1368;}finally{let He=F!==null?le.get(F).__webglFramebuffer:null;Se.bindFramebuffer(C.FRAMEBUFFER,He);}}},this.readRenderTargetPixelsAsync=async function(v,V,K,j,k,de,Ee,Ce=0){var _guard1369,_guard1370,_guard1371,_guard1372,_guard1373,_guard1374;if(!(_guard1369=v,_guard1369?v.isWebGLRenderTarget:_guard1369))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let we=le.get(v).__webglFramebuffer;if(_guard1371=(_guard1370=v.isWebGLCubeRenderTarget,_guard1370?Ee!==void 0:_guard1370),_guard1371?we=we[Ee]:_guard1371,we)if(_guard1374=(_guard1373=(_guard1372=V>=0,_guard1372?V<=v.width-j:_guard1372),_guard1373?K>=0:_guard1373),_guard1374?K<=v.height-k:_guard1374){var _guard1375;Se.bindFramebuffer(C.FRAMEBUFFER,we);let He=v.textures[Ce],We=He.format,Oe=He.type;if(!Ae.textureFormatReadable(We))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.\");if(!Ae.textureTypeReadable(Oe))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.\");let st=C.createBuffer();C.bindBuffer(C.PIXEL_PACK_BUFFER,st),C.bufferData(C.PIXEL_PACK_BUFFER,de.byteLength,C.STREAM_READ),_guard1375=v.textures.length>1,_guard1375?C.readBuffer(C.COLOR_ATTACHMENT0+Ce):_guard1375,C.readPixels(V,K,j,k,fe.convert(We),fe.convert(Oe),0);let ht=F!==null?le.get(F).__webglFramebuffer:null;Se.bindFramebuffer(C.FRAMEBUFFER,ht);let St=C.fenceSync(C.SYNC_GPU_COMMANDS_COMPLETE,0);return C.flush(),await Hh(C,St,4),C.bindBuffer(C.PIXEL_PACK_BUFFER,st),C.getBufferSubData(C.PIXEL_PACK_BUFFER,0,de),C.deleteBuffer(st),C.deleteSync(St),de;}else throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.\");},this.copyFramebufferToTexture=function(v,V=null,K=0){let j=Math.pow(2,-K),k=Math.floor(v.image.width*j),de=Math.floor(v.image.height*j),Ee=V!==null?V.x:0,Ce=V!==null?V.y:0;be.setTexture2D(v,0),C.copyTexSubImage2D(C.TEXTURE_2D,K,0,0,Ee,Ce,k,de),Se.unbindTexture();};let Pf=C.createFramebuffer(),Df=C.createFramebuffer();this.copyTextureToTexture=function(v,V,K=null,j=null,k=0,de=null){var _guard1376,_guard1378,_guard1379;_guard1376=de===null,_guard1376?k!==0?(cs(\"WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels.\"),de=k,k=0):de=0:_guard1376;let Ee,Ce,we,He,We,Oe,st,ht,St,pt=v.isCompressedTexture?v.mipmaps[de]:v.image;if(K!==null)Ee=K.max.x-K.min.x,Ce=K.max.y-K.min.y,we=K.isBox3?K.max.z-K.min.z:1,He=K.min.x,We=K.min.y,Oe=K.isBox3?K.min.z:0;else{let rn=Math.pow(2,-k);Ee=Math.floor(pt.width*rn),Ce=Math.floor(pt.height*rn),v.isDataArrayTexture?we=pt.depth:v.isData3DTexture?we=Math.floor(pt.depth*rn):we=1,He=0,We=0,Oe=0;}j!==null?(st=j.x,ht=j.y,St=j.z):(st=0,ht=0,St=0);let dt=fe.convert(V.format),Be=fe.convert(V.type),xt;V.isData3DTexture?(be.setTexture3D(V,0),xt=C.TEXTURE_3D):V.isDataArrayTexture||V.isCompressedArrayTexture?(be.setTexture2DArray(V,0),xt=C.TEXTURE_2D_ARRAY):(be.setTexture2D(V,0),xt=C.TEXTURE_2D),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,V.flipY),C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL,V.premultiplyAlpha),C.pixelStorei(C.UNPACK_ALIGNMENT,V.unpackAlignment);let ot=C.getParameter(C.UNPACK_ROW_LENGTH),$t=C.getParameter(C.UNPACK_IMAGE_HEIGHT),Zi=C.getParameter(C.UNPACK_SKIP_PIXELS),Jt=C.getParameter(C.UNPACK_SKIP_ROWS),Os=C.getParameter(C.UNPACK_SKIP_IMAGES);C.pixelStorei(C.UNPACK_ROW_LENGTH,pt.width),C.pixelStorei(C.UNPACK_IMAGE_HEIGHT,pt.height),C.pixelStorei(C.UNPACK_SKIP_PIXELS,He),C.pixelStorei(C.UNPACK_SKIP_ROWS,We),C.pixelStorei(C.UNPACK_SKIP_IMAGES,Oe);let yt=v.isDataArrayTexture||v.isData3DTexture,sn=V.isDataArrayTexture||V.isData3DTexture;if(v.isDepthTexture){let rn=le.get(v),zt=le.get(V),Xt=le.get(rn.__renderTarget),bl=le.get(zt.__renderTarget);Se.bindFramebuffer(C.READ_FRAMEBUFFER,Xt.__webglFramebuffer),Se.bindFramebuffer(C.DRAW_FRAMEBUFFER,bl.__webglFramebuffer);for(let Mi=0;Mi<we;Mi++){var _guard1377;_guard1377=yt,_guard1377?(C.framebufferTextureLayer(C.READ_FRAMEBUFFER,C.COLOR_ATTACHMENT0,le.get(v).__webglTexture,k,Oe+Mi),C.framebufferTextureLayer(C.DRAW_FRAMEBUFFER,C.COLOR_ATTACHMENT0,le.get(V).__webglTexture,de,St+Mi)):_guard1377,C.blitFramebuffer(He,We,Ee,Ce,st,ht,Ee,Ce,C.DEPTH_BUFFER_BIT,C.NEAREST);}Se.bindFramebuffer(C.READ_FRAMEBUFFER,null),Se.bindFramebuffer(C.DRAW_FRAMEBUFFER,null);}else if(k!==0||v.isRenderTargetTexture||le.has(v)){let rn=le.get(v),zt=le.get(V);Se.bindFramebuffer(C.READ_FRAMEBUFFER,Pf),Se.bindFramebuffer(C.DRAW_FRAMEBUFFER,Df);for(let Xt=0;Xt<we;Xt++)yt?C.framebufferTextureLayer(C.READ_FRAMEBUFFER,C.COLOR_ATTACHMENT0,rn.__webglTexture,k,Oe+Xt):C.framebufferTexture2D(C.READ_FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_2D,rn.__webglTexture,k),sn?C.framebufferTextureLayer(C.DRAW_FRAMEBUFFER,C.COLOR_ATTACHMENT0,zt.__webglTexture,de,St+Xt):C.framebufferTexture2D(C.DRAW_FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_2D,zt.__webglTexture,de),k!==0?C.blitFramebuffer(He,We,Ee,Ce,st,ht,Ee,Ce,C.COLOR_BUFFER_BIT,C.NEAREST):sn?C.copyTexSubImage3D(xt,de,st,ht,St+Xt,He,We,Ee,Ce):C.copyTexSubImage2D(xt,de,st,ht,He,We,Ee,Ce);Se.bindFramebuffer(C.READ_FRAMEBUFFER,null),Se.bindFramebuffer(C.DRAW_FRAMEBUFFER,null);}else sn?v.isDataTexture||v.isData3DTexture?C.texSubImage3D(xt,de,st,ht,St,Ee,Ce,we,dt,Be,pt.data):V.isCompressedArrayTexture?C.compressedTexSubImage3D(xt,de,st,ht,St,Ee,Ce,we,dt,pt.data):C.texSubImage3D(xt,de,st,ht,St,Ee,Ce,we,dt,Be,pt):v.isDataTexture?C.texSubImage2D(C.TEXTURE_2D,de,st,ht,Ee,Ce,dt,Be,pt.data):v.isCompressedTexture?C.compressedTexSubImage2D(C.TEXTURE_2D,de,st,ht,pt.width,pt.height,dt,pt.data):C.texSubImage2D(C.TEXTURE_2D,de,st,ht,Ee,Ce,dt,Be,pt);C.pixelStorei(C.UNPACK_ROW_LENGTH,ot),C.pixelStorei(C.UNPACK_IMAGE_HEIGHT,$t),C.pixelStorei(C.UNPACK_SKIP_PIXELS,Zi),C.pixelStorei(C.UNPACK_SKIP_ROWS,Jt),C.pixelStorei(C.UNPACK_SKIP_IMAGES,Os),_guard1379=(_guard1378=de===0,_guard1378?V.generateMipmaps:_guard1378),_guard1379?C.generateMipmap(xt):_guard1379,Se.unbindTexture();},this.initRenderTarget=function(v){var _guard1380;_guard1380=le.get(v).__webglFramebuffer===void 0,_guard1380?be.setupRenderTarget(v):_guard1380;},this.initTexture=function(v){v.isCubeTexture?be.setTextureCube(v,0):v.isData3DTexture?be.setTexture3D(v,0):v.isDataArrayTexture||v.isCompressedArrayTexture?be.setTexture2DArray(v,0):be.setTexture2D(v,0),Se.unbindTexture();},this.resetState=function(){w=0,P=0,F=null,Se.reset(),ye.reset();},_guard1381=typeof __THREE_DEVTOOLS__<\"u\",_guard1381?__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this})):_guard1381;}get coordinateSystem(){return _n;}get outputColorSpace(){return this._outputColorSpace;}set outputColorSpace(e){this._outputColorSpace=e;let t=this.getContext();t.drawingBufferColorSpace=rt._getDrawingBufferColorSpace(e),t.unpackColorSpace=rt._getUnpackColorSpace();}};function Md(i,e=!1){let t=i[0].index!==null,n=new Set(Object.keys(i[0].attributes)),s=new Set(Object.keys(i[0].morphAttributes)),r={},o={},a=i[0].morphTargetsRelative,c=new Ot(),l=0;for(let u=0;u<i.length;++u){let h=i[u],d=0;if(t!==(h.index!==null))return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index \"+u+\". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.\"),null;for(let f in h.attributes){var _guard1382;if(!n.has(f))return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index \"+u+'. All geometries must have compatible attributes; make sure \"'+f+'\" attribute exists among all geometries, or in none of them.'),null;_guard1382=r[f]===void 0,_guard1382?r[f]=[]:_guard1382,r[f].push(h.attributes[f]),d++;}if(d!==n.size)return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index \"+u+\". Make sure all geometries have the same number of attributes.\"),null;if(a!==h.morphTargetsRelative)return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index \"+u+\". .morphTargetsRelative must be consistent throughout all geometries.\"),null;for(let f in h.morphAttributes){var _guard1383;if(!s.has(f))return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index \"+u+\".  .morphAttributes must be consistent throughout all geometries.\"),null;_guard1383=o[f]===void 0,_guard1383?o[f]=[]:_guard1383,o[f].push(h.morphAttributes[f]);}if(e){let f;if(t)f=h.index.count;else if(h.attributes.position!==void 0)f=h.attributes.position.count;else return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index \"+u+\". The geometry must have either an index or a position attribute\"),null;c.addGroup(l,f,u),l+=f;}}if(t){let u=0,h=[];for(let d=0;d<i.length;++d){let f=i[d].index;for(let g=0;g<f.count;++g)h.push(f.getX(g)+u);u+=i[d].attributes.position.count;}c.setIndex(h);}for(let u in r){let h=vd(r[u]);if(!h)return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the \"+u+\" attribute.\"),null;c.setAttribute(u,h);}for(let u in o){let h=o[u][0].length;if(h===0)break;c.morphAttributes=c.morphAttributes||{},c.morphAttributes[u]=[];for(let d=0;d<h;++d){let f=[];for(let _=0;_<o[u].length;++_)f.push(o[u][_][d]);let g=vd(f);if(!g)return console.error(\"THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the \"+u+\" morphAttribute.\"),null;c.morphAttributes[u].push(g);}}return c;}function vd(i){var _guard1388;let e,t,n,s=-1,r=0;for(let l=0;l<i.length;++l){var _guard1384,_guard1385,_guard1386,_guard1387;let u=i[l];if(_guard1384=e===void 0,_guard1384?e=u.array.constructor:_guard1384,e!==u.array.constructor)return console.error(\"THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.\"),null;if(_guard1385=t===void 0,_guard1385?t=u.itemSize:_guard1385,t!==u.itemSize)return console.error(\"THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.\"),null;if(_guard1386=n===void 0,_guard1386?n=u.normalized:_guard1386,n!==u.normalized)return console.error(\"THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.\"),null;if(_guard1387=s===-1,_guard1387?s=u.gpuType:_guard1387,s!==u.gpuType)return console.error(\"THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes.\"),null;r+=u.count*t;}let o=new e(r),a=new kt(o,t,n),c=0;for(let l=0;l<i.length;++l){let u=i[l];if(u.isInterleavedBufferAttribute){let h=c\/t;for(let d=0,f=u.count;d<f;d++)for(let g=0;g<t;g++){let _=u.getComponent(d,g);a.setComponent(d+h,g,_);}}else o.set(u.array,c);c+=u.count*t;}return _guard1388=s!==void 0,_guard1388?a.gpuType=s:_guard1388,a;}var Ar=new N();function hn(i,e,t,n,s,r){let o=2*Math.PI*s\/4,a=Math.max(r-2*s,0),c=Math.PI\/4;Ar.copy(e),Ar[n]=0,Ar.normalize();let l=.5*o\/(o+a),u=1-Ar.angleTo(i)\/c;return Math.sign(Ar[t])===1?u*l:a\/(o+a)+l+l*(1-u);}var $a=class i extends ln{constructor(e=1,t=1,n=1,s=2,r=.1){let o=s*2+1;if(r=Math.min(e\/2,t\/2,n\/2,r),super(1,1,1,o,o,o),this.type=\"RoundedBoxGeometry\",this.parameters={width:e,height:t,depth:n,segments:s,radius:r},o===1)return;let a=this.toNonIndexed();this.index=null,this.attributes.position=a.attributes.position,this.attributes.normal=a.attributes.normal,this.attributes.uv=a.attributes.uv;let c=new N(),l=new N(),u=new N(e,t,n).divideScalar(2).subScalar(r),h=this.attributes.position.array,d=this.attributes.normal.array,f=this.attributes.uv.array,g=h.length\/6,_=new N(),m=.5\/o;for(let p=0,E=0;p<h.length;p+=3,E+=2)switch(c.fromArray(h,p),l.copy(c),l.x-=Math.sign(l.x)*m,l.y-=Math.sign(l.y)*m,l.z-=Math.sign(l.z)*m,l.normalize(),h[p+0]=u.x*Math.sign(c.x)+l.x*r,h[p+1]=u.y*Math.sign(c.y)+l.y*r,h[p+2]=u.z*Math.sign(c.z)+l.z*r,d[p+0]=l.x,d[p+1]=l.y,d[p+2]=l.z,Math.floor(p\/g)){case 0:_.set(1,0,0),f[E+0]=hn(_,l,\"z\",\"y\",r,n),f[E+1]=1-hn(_,l,\"y\",\"z\",r,t);break;case 1:_.set(-1,0,0),f[E+0]=1-hn(_,l,\"z\",\"y\",r,n),f[E+1]=1-hn(_,l,\"y\",\"z\",r,t);break;case 2:_.set(0,1,0),f[E+0]=1-hn(_,l,\"x\",\"z\",r,e),f[E+1]=hn(_,l,\"z\",\"x\",r,n);break;case 3:_.set(0,-1,0),f[E+0]=1-hn(_,l,\"x\",\"z\",r,e),f[E+1]=1-hn(_,l,\"z\",\"x\",r,n);break;case 4:_.set(0,0,1),f[E+0]=1-hn(_,l,\"x\",\"y\",r,e),f[E+1]=1-hn(_,l,\"y\",\"x\",r,t);break;case 5:_.set(0,0,-1),f[E+0]=hn(_,l,\"x\",\"y\",r,e),f[E+1]=1-hn(_,l,\"y\",\"x\",r,t);break;}}static fromJSON(e){return new i(e.width,e.height,e.depth,e.segments,e.radius);}};function Sd(i,e){var _guard1420;let t=i.querySelector(\".bh-journey-stage\"),n=t.querySelector(\"canvas\"),s=matchMedia(\"(min-width: 1100px) and (min-height: 650px) and (hover: hover) and (pointer: fine)\"),r,o,a,c=[],l=[],u=0,h=0,d=0,f=!1,g=!1,_=!1,m=!1,p={x:0,y:0},E={x:0,y:0},T=0,y=0,R=1.35,w=!0,P=(A,I=0,D=1)=>Math.min(D,Math.max(I,A)),F=A=>(A=P(A),A*A*(3-2*A)),M=A=>i.querySelector(A),S=new Map(),L=new ln(1,1,1),z=[[\".bh-hero\",\"\\u041D\\u0430\\u0447\\u0430\\u043B\\u043E\",\"#080d0b\"],[\"#bh-releases\",\"\\u0412 \\u043A\\u0430\\u0434\\u0440\\u0435\",\"#09131d\"],[\"#bh-world\",\"World RP\",\"#0b1820\"],[\"#bh-drop\",\"Drop\",\"#0b1620\"],[\"#bh-signal\",\"SignalRP\",\"#080f20\"],[\"#bh-academy\",\"Academy\",\"#e4e8eb\"],[\"#bh-spark\",\"\\u0422\\u0435\\u043D\\u0438 \\u0418\\u0441\\u043A\\u0440\\u044B\",\"#071311\"],[\".bh-about\",\"\\u0412\\u043C\\u0435\\u0441\\u0442\\u0435\",\"#080e0c\"]].map(([A,I,D])=>({el:M(A),label:I,color:new $e(D),top:0,height:0})),$=z.map(A=>A.color),Q=new $e(),O=M(\".bh-journey-rail\"),W=M(\".bh-journey-current\"),ae=[...O.querySelectorAll(\"a\")],H=[...t.querySelectorAll(\".bh-vector-layer\")],q={},ce=\"\",ge=M(\".bh-scene-thread\");function Pe(A,I=0,D=0){let X=[A,I,D].join(\"\/\");return S.has(X)||S.set(X,new fr({color:A,metalness:I,roughness:I?.28:.72,emissive:A,emissiveIntensity:D})),S.get(X);}function Fe(A,I,D,X=0,G=0,ie=0,te=0,ne=0){let oe=new Ht(I,Pe(D,te,ne));return oe.position.set(X,G,ie),A.add(oe),oe;}function ve(A,I,D,X,G,ie,te,ne,oe=0,he=0){let fe=Fe(A,L,ne,I,D,X,oe,he);return fe.scale.set(G,ie,te),fe;}function Ie(A,I,D,X,G,ie,te,ne,oe=.12,he=.2){return Fe(A,new $a(G,ie,te,2,oe),ne,I,D,X,he);}function J(A,I,D,X,G,ie,te=0,ne=0){return Fe(A,new hr(G,24,16),ie,I,D,X,te,ne);}function re(A,I,D,X,G=0,ie=0){let te=Fe(A,new dr(I,D,8,96),X,0,0,0,.65,.15);return te.rotation.set(G,0,ie),te;}function pe(A,I,D,X=.016){let G=new Li(I.map(ie=>new N(...ie)));return Fe(A,new ms(G,64,X,5,!1),D,0,0,0,.4,.65),G;}function me(A){A.updateMatrixWorld(!0);let I=A.matrixWorld.clone().invert(),D=new Map(),X=[];A.traverse(G=>{var _guard1389;if(_guard1389=G.isMesh,_guard1389?!Array.isArray(G.material):_guard1389){let ie=D.get(G.material);ie||D.set(G.material,ie=[]);let te=G.geometry.clone();te.applyMatrix4(new gt().multiplyMatrices(I,G.matrixWorld)),ie.push(te),X.push(G);}}),X.forEach(G=>G.removeFromParent()),D.forEach((G,ie)=>{var _guard1390;let te=Md(G,!1);_guard1390=te,_guard1390?A.add(new Ht(te,ie)):_guard1390,G.forEach(ne=>ne.dispose());});}function Me(A,I,D,X=1,G=\"#35534b\"){ve(A,I,X*.25,D,.085,X*.5,.085,\"#665749\"),Fe(A,new di(X*.32,X*.7,7),G,I,X*.65,D),Fe(A,new di(X*.25,X*.57,7),G,I,X*.92,D);}function Ne(A){let I=new Map();return A.traverse(D=>{if(D.material){let X=D.material;if(!I.has(X)){let G=X.clone();G.transparent=!0,G.userData.baseOpacity=G.opacity,I.set(X,G);}D.material=I.get(X);}}),A.userData.materials=[...I.values()],o.add(A),A;}function it(){let A=new _t(),I=new _t();A.add(I),re(I,3.25,.025,\"#c6f574\",1.05,-.28),re(I,2.9,.014,\"#759e9b\",-.7,.55),re(I,3.7,.009,\"#59766b\",.25,-.75);let D=J(I,0,0,0,1.42,\"#172c24\",.8);re(D,1.45,.028,\"#c6f574\",1.15,.2);for(let ie=0;ie<12;ie++){let te=ie\/12*Math.PI*2;J(I,Math.cos(te)*3.25,Math.sin(te)*1.55,Math.sin(te)*2.85,ie%3===0?.09:.035,ie%3===0?\"#d0fc8d\":\"#7da69c\",.6,.3);}return Ie(I,2.1,1.4,.6,.36,.36,.36,\"#b8c3ca\",.04,.65).rotation.set(.4,.5,.2),Ie(I,-2.5,-1,1,.48,.68,.09,\"#63777e\",.06,.6).rotation.set(.1,.6,-.2),A.position.set(3.6,.35,0),q.hero=I,Ne(A);}function C(){let A=new _t();A.position.set(4,.8,-4);let I=J(A,0,0,0,2.5,\"#aab7c7\",.18);for(let D=0;D<38;D++){let X=D*2.39996,G=1-D\/19,ie=Math.sqrt(Math.max(0,1-G*G)),te=J(I,Math.cos(X)*ie*2.47,G*2.47,Math.sin(X)*ie*2.47,.07+D%4*.035,\"#81909e\");te.scale.z=.28,te.lookAt(0,0,0);}re(A,4,.013,\"#8badc9\",1.1,.25);for(let D=0;D<70;D++){let X=Math.sin(D*127.1)*14,G=Math.cos(D*93.2)*8,ie=-4-Math.abs(Math.sin(D)*6);J(A,X,G,ie,.014+D%3*.009,\"#b8d4dd\",0,.65);}return me(A),Ne(A);}function tt(){let A=new _t(),I=new _t(),D=new _t();A.add(I,D),A.position.set(3.65,-1.15,0),A.rotation.y=-.52,A.scale.setScalar(.88),Ie(I,0,-.27,0,8.7,.45,7.15,\"#1c3338\",.18,.1),Ie(I,0,-.035,0,8.55,.08,7,\"#566760\",.1,0),ve(I,0,.024,0,1,.04,7,\"#273b43\"),ve(I,0,.026,0,8.5,.045,.8,\"#273b43\"),ve(I,-3.2,.03,0,.68,.035,6.95,\"#2d7480\",.5);for(let te of[-1.6,1.7])Ie(I,-3.2,.1,te,1.15,.12,.5,\"#8c9c99\",.04);for(let te=-6;te<=6;te++)ve(I,0,.055,te*.49,.025,.012,.19,\"#a1b2ac\"),ve(I,te*.59,.056,0,.24,.012,.023,\"#a1b2ac\");for(let te of[-1,1])for(let ne=0;ne<5;ne++)ve(I,te*.73,.058,-.28+ne*.14,.32,.015,.065,\"#c4c9bb\"),ve(I,-.28+ne*.14,.06,te*.6,.065,.015,.23,\"#c4c9bb\");for(let te of[-.68,.68])for(let ne of[-2.7,-1.7,1.6,2.7])ve(I,te,.3,ne,.035,.6,.035,\"#879894\",.5),ve(I,te+.06,.61,ne,.16,.03,.07,\"#d8e5c2\",0,.7);for(let te of[-3.94,3.9])for(let ne=0;ne<5;ne++)Me(I,te,-2.7+ne*1.35,.55+ne%2*.12);ve(I,2.85,.035,2.15,1.6,.04,1.9,\"#3b6650\"),Fe(I,new Di(.44,.48,.13,32),\"#a1aaa0\",2.82,.12,2.1),Fe(I,new Di(.36,.36,.03,32),\"#428d96\",2.82,.2,2.1,.4),J(I,2.82,.3,2.1,.095,\"#a5d8d0\",.5,.15);for(let te=0;te<5;te++){let ne=te*1.256;Me(I,2.82+Math.cos(ne)*.9,2.1+Math.sin(ne)*.9,.55,\"#3b6854\");}for(let te of[2.25,3.45])ve(I,te,.16,1.45,.4,.08,.16,\"#a9946d\"),ve(I,te,.26,1.39,.4,.19,.035,\"#a9946d\");me(I);let X=[];function G(te,ne,oe,he,fe,ye,ke=!1){let U=new _t();U.position.set(te,0,ne),D.add(U);let ee=new _t();if(U.add(ee),Ie(ee,0,.07,0,oe+.18,.14,he+.18,\"#a4aaa0\",.035,0),ve(ee,0,fe\/2+.14,0,oe,fe,he,ye),ve(ee,0,fe+.17,0,oe+.1,.09,he+.1,\"#aeb7ac\"),ke){let Y=Fe(ee,new di(1,.55,4),\"#496975\",0,fe+.46,0,.15);Y.rotation.y=Math.PI\/4,Y.scale.set(oe*.78,1,he*.78),ve(ee,oe*.26,fe+.62,0,.12,.4,.14,\"#64777a\");}else Ie(ee,-oe*.18,fe+.31,0,oe*.42,.24,he*.34,\"#556b71\",.025,.3),ve(ee,oe*.28,fe+.25,0,oe*.14,.1,he*.5,\"#1b4e64\",.5);let se=Math.max(2,Math.round(fe\/.38)),ue=Math.max(2,Math.round(oe\/.28));for(let Y=0;Y<se;Y++)for(let Z=0;Z<ue;Z++){let _e=-oe*.5+(Z+.5)*oe\/ue,Le=.35+Y*(fe-.23)\/se;ve(ee,_e,Le,he\/2+.012,oe\/ue*.58,.18,.035,(Y+Z)%4?\"#284c5b\":\"#e3ce91\",.3,(Y+Z)%4?0:.3),ve(ee,oe\/2+.012,Le,-he*.5+(Z+.5)*he\/ue,.035,.18,he\/ue*.58,(Y+Z)%3?\"#345664\":\"#d4cf9e\",.3,.1);}if(ve(ee,0,.29,he\/2+.026,.18,.3,.04,\"#1a333b\"),ve(ee,0,.49,he\/2+.1,oe*.7,.055,.23,\"#94b3aa\"),fe<1.5)for(let Y=0;Y<4;Y++)ve(ee,-oe*.34+Y*oe*.22,.5,he\/2+.11,oe*.1,.058,.22,Y%2?\"#d5c5ab\":\"#536b61\");for(let Y=0;Y<se;Y++){var _guard1391;let Z=.35+Y*(fe-.23)\/se;if(ve(ee,0,Z-.13,he\/2+.035,oe+.035,.025,.08,\"#c7c7b6\"),_guard1391=fe>1.7,_guard1391?Y>0:_guard1391){ve(ee,-oe*.22,Z-.12,he\/2+.14,oe*.36,.035,.27,\"#8b9b96\"),ve(ee,-oe*.22,Z+.02,he\/2+.26,oe*.36,.025,.025,\"#bfd0c6\");for(let _e of[-.38,-.22,-.06])ve(ee,oe*_e,Z-.045,he\/2+.26,.018,.15,.018,\"#7d9495\");}}for(let Y of[-oe\/2,oe\/2])ve(ee,Y,fe\/2+.14,he\/2+.025,.045,fe,.055,\"#adb8ac\");for(let Y of[-oe*.33,oe*.33])ve(ee,Y,.16,he\/2+.2,.22,.12,.18,\"#74827a\"),J(ee,Y,.25,he\/2+.2,.1,\"#426b50\");ve(ee,.1,.012,-.1,oe+.35,.008,he+.35,\"#344a45\"),me(ee),X.push(U);}G(-1.7,-2.5,1.05,.9,1.5,\"#c4b9a1\",!0),G(-1.6,-1.18,1.15,.9,2.4,\"#738d99\"),G(1.38,-2.4,1,.95,2.8,\"#869f9c\"),G(2.8,-2.35,1.2,1,1.65,\"#c9b49c\",!0),G(1.35,-1.1,.95,.85,1.45,\"#a9b7b5\"),G(2.75,-1,1.3,.95,2.1,\"#8198a5\"),G(-1.55,1.18,1.28,.9,1.2,\"#c0ab90\",!0),G(-1.7,2.55,1.1,.95,1.85,\"#8ba4a0\"),G(1.35,1.23,.8,.95,1.25,\"#c2bda8\",!0),G(1.2,2.58,.8,.85,.95,\"#829e93\",!0);let ie=[];for(let te=0;te<3;te++){let ne=new _t();Ie(ne,0,.18,0,.19,.18,te===2?.58:.37,te===0?\"#d1bd87\":te===1?\"#7199a9\":\"#afc1ba\",.035),ve(ne,0,.27,0,.16,.08,.21,\"#223c49\",.4);for(let oe of[-.11,.11])for(let he of[-.12,.12])J(ne,oe,.09,he,.045,\"#111e24\");me(ne),I.add(ne),ie.push(ne);}return q.city={g:A,buildings:X,cars:ie},Ne(A);}function De(){let A=new _t();A.position.set(3.6,.2,-2);let I=[];for(let X=0;X<4;X++)I.push(pe(A,[[-5,-1.4-X*.17,-1],[-1.7,1.3+X*.2,0],[2.7,-1.3-X*.25,.7],[5.5,.7+X*.18,-1]],X===0?\"#a2d9f3\":\"#304a5b\",X===0?.018:.009));let D=[];for(let X=0;X<6;X++){let G=Ie(A,0,0,0,.12,.16,.04,X%2?\"#afdbf0\":\"#c2f484\",.025,.5);D.push(G);}return re(A,4.9,.008,\"#284653\",1.1,.5),q.drop={paths:I,packets:D},Ne(A);}function Ae(){let A=new _t();A.position.set(3.4,-1.3,-1),A.rotation.set(-.65,-.3,.05);for(let ie=-7;ie<=7;ie++)for(let te=-4;te<=4;te++){var _guard1392;_guard1392=(ie+te)%3,_guard1392?ve(A,ie*.72,0,te*.72,.57,.04,.54,\"#18334a\"):_guard1392;}let I=pe(A,[[-5,.08,1.45],[-2,.08,1.45],[-2,.08,-.7],[.8,.08,-.7],[.8,.08,2.6],[4,.08,2.6]],\"#779acb\",.018);pe(A,[[-4,.1,-2.9],[-.8,.1,-2.9],[-.8,.1,.7],[3.5,.1,.7]],\"#a26d77\",.018),me(A);let D=J(A,0,.12,0,.085,\"#c7e7ff\",.3,.9),X=pe(A,[[-5,.12,1.45],[-2,.12,1.45],[-2,.12,-.7],[.8,.12,-.7],[.8,.12,2.6],[4,.12,2.6]],\"#a6caff\",.035),G=A.children[A.children.length-1];return q.signal={route:X,beacon:D,trace:G},Ne(A);}function Se(){let A=new _t();A.position.set(3.7,.5,0);let I=new _t();A.add(I);let D=Ie(I,0,0,0,2.65,2.65,2.65,\"#a6b9c5\",.18,.55),X=new fs(new ps(new ln(2.72,2.72,2.72)),new Pi({color:\"#557987\"}));I.add(X);for(let ie=-2;ie<=2;ie++){let te=new fs(new ps(new ln(2.73,.001,2.73)),new Pi({color:\"#71909c\",transparent:!0,opacity:.42}));te.position.y=ie*.46,I.add(te);}let G=new _t();A.add(G),re(G,3.3,.012,\"#839ba6\",1.2,.2);for(let ie=0;ie<4;ie++)Ie(G,Math.cos(ie*1.57)*3.3,0,Math.sin(ie*1.57)*3.3,.32,.32,.32,ie%2?\"#b7d78d\":\"#b0bdca\",.045,.3).rotation.set(.5,.6,.3);return q.academy={cube:I,solid:D,orbit:G},Ne(A);}function xe(){let A=new _t();A.position.set(0,-3,-3);for(let X=0;X<64;X++){var _guard1393,_guard1394;let G=Math.sin(X*87.7)*16,ie=-Math.abs(Math.cos(X*52.3))*13,te=3+Math.abs(Math.sin(X*9))*4;(_guard1394=(_guard1393=G>1,_guard1393?G<6:_guard1393),_guard1394?ie>-5:_guard1394)||Me(A,G,ie,te,ie<-6?\"#25453e\":\"#102c25\");}let I=new _t();I.position.set(4,0,-2),A.add(I),ve(I,0,.8,0,2.4,1.6,1.7,\"#304c43\");let D=Fe(I,new di(1.95,.9,4),\"#172b27\",0,2,0);D.rotation.y=Math.PI\/4,D.scale.z=.8;for(let X=0;X<9;X++)ve(I,0,.14+X*.17,.86,2.4,.025,.025,\"#506056\");ve(I,-.68,.87,.88,.48,.61,.05,\"#b9955f\",0,.65),ve(I,-.68,.87,.92,.035,.61,.02,\"#283d33\"),ve(I,-.68,.87,.92,.48,.035,.02,\"#283d33\"),ve(I,.36,.6,.87,.53,1.2,.04,\"#152c25\");for(let X of[-1.8,1.8])ve(I,X,.5,1.2,.075,1,.075,\"#41594c\"),ve(I,X,.75,1.2,.6,.045,.035,\"#5a6a55\");for(let X=0;X<13;X++)ve(I,-1.35+X*.225,2.02,.52,.025,.04,1.05,\"#31453c\");for(let X=0;X<4;X++)ve(I,.36,.06+X*.055,1.6-X*.14,.8,.1,.28,\"#596452\");ve(I,1.5,.8,1.2,.06,1.6,.06,\"#536149\"),ve(I,1.5,1.53,1.2,.14,.19,.14,\"#bb9c66\",0,.45);for(let X=0;X<24;X++){let G=Math.sin(X*2.4)*9,ie=Math.cos(X*1.8)*4;J(A,G,.05,ie,.12+X%3*.06,\"#35443a\").scale.set(1.6,.6,1);}return me(A),q.forest=A,Ne(A);}function le(){r=new Ya({canvas:n,alpha:!0,antialias:!0,powerPreference:\"low-power\"}),r.outputColorSpace=Vt,r.toneMapping=ra,r.toneMappingExposure=1.25,o=new rr(),o.fog=new sr(\"#10221d\",24,44),a=new Ft(36,1,.1,75),a.position.set(0,4.2,19),a.lookAt(0,0,0),o.add(new gr(\"#e6f1f0\",\"#283e36\",2.5));let A=new gs(\"#e9f4ff\",3.5);A.position.set(-5,8,7),o.add(A);let I=new gs(\"#abdcbc\",1.7);I.position.set(7,3,-3),o.add(I),c=[it(),C(),tt(),De(),Ae(),Se(),xe(),null];let D=it();D.position.set(0,0,-5),D.scale.setScalar(1.3),c[7]=D,c.forEach(X=>{X.userData.home=X.position.clone(),X.visible=!1;}),i.dataset.journeyEngine=\"Three.js r180 \/ Anime.js \/ Motion\",n.addEventListener(\"webglcontextlost\",X=>{X.preventDefault(),Re();},{once:!0});}function be(){let A=innerWidth,I=innerHeight;m||(r.setPixelRatio(Math.min(devicePixelRatio||1,R)),r.setSize(A,I,!1),a.aspect=A\/I,a.updateProjectionMatrix()),z.forEach(D=>{let X=D.el.getBoundingClientRect();D.top=X.top+scrollY,D.height=X.height;}),w=!1;}function Re(){var _guard1395;m=!0,i.classList.add(\"bh-vector\"),i.dataset.journeyEngine=\"SVG + CSS 3D \/ Anime.js \/ Motion\",i.dataset.journeyQuality=\"vector\",_guard1395=r,_guard1395?(r.dispose(),r=null):_guard1395;}function Ve(A){var _guard1396;g=!0,f=!1,cancelAnimationFrame(u),i.classList.remove(\"bh-immersive\"),i.dataset.journey=A,t.style.display=\"none\",O.hidden=!0,_guard1396=r,_guard1396?r.dispose():_guard1396,dispatchEvent(new Event(\"resize\"));}function b(A){var _guard1397,_guard1398,_guard1399,_guard1403,_guard1404,_guard1412,_guard1413,_guard1414,_guard1415;if(!f||_)return;u=requestAnimationFrame(b);let I=h?Math.min((A-h)\/1e3,.08):.016;if(h=A,document.hidden||i.classList.contains(\"bh-video-open\"))return;_guard1397=w,_guard1397?be():_guard1397;let D=i.getBoundingClientRect(),X=(_guard1398=D.bottom>0,_guard1398?D.top<innerHeight:_guard1398);if(t.style.visibility=X?\"visible\":\"hidden\",O.style.visibility=(_guard1399=X,_guard1399?scrollY>100:_guard1399)?\"visible\":\"hidden\",!X||i.dataset.intro===\"playing\")return;d+=I,E.x+=(p.x-E.x)*Math.min(1,I*5),E.y+=(p.y-E.y)*Math.min(1,I*5);let G=scrollY,ie=innerHeight,te=Math.min(270,ie*.3),ne=0;z.forEach((ee,se)=>{var _guard1400;_guard1400=G>=ee.top-ie*.52,_guard1400?ne=se:_guard1400;});let oe=0,he=z.map((ee,se)=>{let ue=se===0?1:F((G-(ee.top-ie*.52)+te)\/(te*2)),Y=se===z.length-1?1:1-F((G-(z[se+1].top-ie*.52)+te)\/(te*2)),Z=Math.min(ue,Y);return oe+=Z,Z;});Q.setRGB(0,0,0),he.forEach((ee,se)=>{var _guard1401;_guard1401=ee,_guard1401?Q.add($[se].clone().multiplyScalar(ee\/oe)):_guard1401;}),t.style.backgroundColor=\"#\"+Q.getHexString(),m||o.fog.color.copy(Q);let fe=0;he.forEach((ee,se)=>{var _guard1402;_guard1402=ee>he[fe],_guard1402?fe=se:_guard1402;}),_guard1403=i.dataset.chapter!==String(fe),_guard1403?(i.dataset.chapter=String(fe),W.textContent=String(fe+1).padStart(2,\"0\")+\" \/ \"+z[fe].label,ae.forEach((ee,se)=>{se===fe?ee.setAttribute(\"aria-current\",\"step\"):ee.removeAttribute(\"aria-current\");})):_guard1403,i.style.setProperty(\"--journey-light\",String(he[5]));let ye=1-Math.max(...he),ke=Math.min(fe+1,7);_guard1404=ge,_guard1404?(ge.style.opacity=String(ye*.72),ge.style.color=\"#\"+$[ke].clone().lerp(new $e(\"#c6e5bd\"),.7).getHexString(),ge.style.transform=`rotate(${G\/innerHeight*9}deg) scale(${1+ye*.18})`,ge.style.setProperty(\"--thread-offset\",String(-G\/innerHeight*18))):_guard1404;let U=P((G-z[5].top+ie*.27)\/Math.max(ie*.75,z[5].height-ie*.8));if(i.style.setProperty(\"--academy-surface\",String(F((U-.12)\/.5))),(i.dataset.service||\"police\")!==ce){var _guard1405;ce=i.dataset.service||\"police\";let ee={police:\"#8eafff\",medical:\"#c8a0de\",fire:\"#eda393\",road:\"#e7c38a\"};t.style.setProperty(\"--service-color\",ee[ce]);let se={police:\"M-100 720H500V540H900V270H1530\",medical:\"M-100 400H650V720H1100V350H1500\",fire:\"M-100 780H450V300H1000V680H1500\",road:\"M-100 550H550V800H900V380H1500\"},ue=t.querySelector('[data-vector=\"4\"] .bh-vector-route');if(_guard1405=ue,_guard1405?ue.setAttribute(\"d\",se[ce]):_guard1405,q.signal){let Y={police:[[-5,.12,1.45],[-2,.12,1.45],[-2,.12,-.7],[.8,.12,-.7],[.8,.12,2.6],[4,.12,2.6]],medical:[[-4,.12,-2],[0,.12,-2],[0,.12,2],[4,.12,2]],fire:[[-5,.12,2],[-3,.12,2],[-3,.12,-2],[3,.12,-2],[3,.12,2]],road:[[-5,.12,0],[-1,.12,0],[-1,.12,2],[2,.12,2],[2,.12,-2],[5,.12,-2]]},Z=q.signal;Z.route=new Li(Y[ce].map(_e=>new N(..._e))),Z.trace.geometry.dispose(),Z.trace.geometry=new ms(Z.route,64,.035,5,!1),Z.trace.material.color.set(ee[ce]),Z.trace.material.emissive.set(ee[ce]),Z.beacon.material.color.set(ee[ce]);}}if(m){H.forEach((ee,se)=>{let ue=he[se];if(ee.style.opacity=String(ue),ee.style.visibility=ue>.005?\"visible\":\"hidden\",ue>.005){var _guard1406;let Y=P((G-z[se].top+ie*.27)\/Math.max(ie*.75,z[se].height-ie*.8));ee.style.transform=`translate3d(${E.x*(se===6?8:3)+(se%2?1:-1)*F(1-ue)*60}px,${(1-ue)*24-Y*12}px,0) scale(${1+(1-ue)*.05+Y*.025})`,_guard1406=se===5,_guard1406?M(\".bh-vector-cube\").style.transform=`rotateX(${-20-Y*10}deg) rotateY(${35+Y*75}deg)`:_guard1406;}});return;}z.forEach((ee,se)=>{var _guard1407,_guard1408,_guard1410,_guard1411;let ue=he[se],Y=c[se];if(Y.visible=ue>.008,!Y.visible)return;let Z=P((G-ee.top+ie*.27)\/Math.max(ie*.75,ee.height-ie*.8));if(Y.userData.materials.forEach(_e=>{_e.opacity=_e.userData.baseOpacity*ue;}),Y.position.copy(Y.userData.home),Y.position.z-=(1-ue)*2.5,Y.position.y+=(1-ue)*.45,Y.position.x+=(se%2?1:-1)*F(1-ue)*1.4,_guard1407=se===0||se===7,_guard1407?(Y.rotation.y=Math.sin(d*.13)*.13+E.x*.06,Y.rotation.z=Math.sin(d*.09)*.025,Y.position.y+=Math.sin(d*.4)*.07):_guard1407,_guard1408=se===1,_guard1408?Y.rotation.y=Z*.12+d*.012:_guard1408,se===2){let{buildings:_e,cars:Le}=q.city;Y.rotation.y=-.7+Z*.38+E.x*.025,Y.scale.setScalar(.83+Z*.09),_e.forEach((Ue,Mt)=>{let Ge=F((Z*1.3-Mt*.047)\/.42);Ue.scale.y=Math.max(.001,Ge),Ue.position.y=(1-Ge)*-.16;}),Le.forEach((Ue,Mt)=>{var _guard1409;Ue.position.set(Mt===1?1.5:Mt===0?-.22:.22,0,Mt===1?.2:(d*(Mt===2?.32:.45)+Mt*2)%5.7-2.85),_guard1409=Mt===1,_guard1409?(Ue.rotation.y=Math.PI\/2,Ue.position.x=d*.48%6.8-3.4):_guard1409;});let je=P(Z*1.25);M(\".bh-city-progress i\").style.transform=`scaleX(${je})`,M(\".bh-city-caption\").textContent=je>.98?\"\\u0413\\u043E\\u0440\\u043E\\u0434 \\u0441\\u043E\\u0431\\u0440\\u0430\\u043D. \\u0418\\u0441\\u0442\\u043E\\u0440\\u0438\\u044F \\u043D\\u0430\\u0447\\u0438\\u043D\\u0430\\u0435\\u0442\\u0441\\u044F.\":je>.48?\"\\u0414\\u043E\\u043C\\u0430 \\u043E\\u0431\\u0440\\u0435\\u0442\\u0430\\u044E\\u0442 \\u0445\\u0430\\u0440\\u0430\\u043A\\u0442\\u0435\\u0440.\":\"\\u041E\\u0442 \\u043F\\u0435\\u0440\\u0432\\u043E\\u0433\\u043E \\u043A\\u0432\\u0430\\u0440\\u0442\\u0430\\u043B\\u0430 \\u2014 \\u043A \\u0446\\u0435\\u043B\\u043E\\u043C\\u0443 \\u043C\\u0438\\u0440\\u0443.\",i.dataset.city3dProgress=je.toFixed(2);}if(se===3){let{paths:_e,packets:Le}=q.drop;Le.forEach((je,Ue)=>{je.position.copy(_e[Ue%4].getPoint((d*.075+Ue\/6)%1)),je.rotation.set(d*.3,Ue*.4,d*.1);}),Y.rotation.z=Math.sin(d*.14)*.04;}if(_guard1410=se===4,_guard1410?q.signal.beacon.position.copy(q.signal.route.getPoint(d*.055%1)):_guard1410,se===5){let{cube:_e,solid:Le,orbit:je}=q.academy;_e.rotation.set(.3+Z*.25,.35+Z*1.2+E.x*.08,.1),_e.position.y=Math.sin(d*.5)*.08,Le.material.opacity=ue*F((Z-.14)\/.5),je.rotation.y=d*.09;}_guard1411=se===6,_guard1411?(Y.position.z=-4+Z*1.7,Y.position.x=E.x*.12):_guard1411;}),a.position.x=E.x*.12,a.position.y=4.2+E.y*.06,a.lookAt(0,0,0),r.render(o,a),_guard1412=I>.028,_guard1412?T++:_guard1412,y++,_guard1415=y===120,_guard1415?(_guard1414=(_guard1413=T>65,_guard1413?R>1:_guard1413),_guard1414?(R=1,w=!0,i.dataset.journeyQuality=\"balanced\"):_guard1414,y=0,T=0):_guard1415;}function x(){var _guard1416,_guard1417,_guard1418;let A=(_guard1418=(_guard1417=(_guard1416=s.matches,_guard1416?!e():_guard1416),_guard1417?!g:_guard1417),_guard1418?!_:_guard1418);if(A!==f){if(!A){f=!1,cancelAnimationFrame(u),i.classList.remove(\"bh-immersive\"),t.style.display=\"none\",O.hidden=!0,i.dataset.journey=\"standard\",dispatchEvent(new Event(\"resize\"));return;}try{var _guard1419;if(_guard1419=!r,_guard1419?!m:_guard1419)try{le();}catch{Re(),console.info(\"BanTV: graphics acceleration unavailable; vector journey enabled.\");}i.classList.add(\"bh-immersive\"),t.style.display=\"block\",O.hidden=!1,f=!0,i.dataset.journey=\"immersive\",w=!0,h=0,u=requestAnimationFrame(b),dispatchEvent(new Event(\"resize\"));}catch(I){Ve(\"fallback\"),console.warn(\"BanTV: 3D unavailable, standard page remains usable.\",I);}}}addEventListener(\"pointermove\",A=>{p.x=P(A.clientX\/innerWidth*2-1,-1,1),p.y=P(A.clientY\/innerHeight*2-1,-1,1);},{passive:!0}),addEventListener(\"resize\",()=>{w=!0;},{passive:!0}),s.addEventListener(\"change\",x),document.addEventListener(\"visibilitychange\",()=>{h=0;});let B=new MutationObserver(x);return B.observe(i,{attributes:!0,attributeFilter:[\"class\"]}),_guard1420=document.fonts,_guard1420?document.fonts.ready.then(()=>{w=!0;}):_guard1420,addEventListener(\"pagehide\",()=>{f=!1,cancelAnimationFrame(u);}),addEventListener(\"pageshow\",()=>{f=!1,x();}),x(),{sync:x,destroy(){var _guard1421;_=!0,f=!1,cancelAnimationFrame(u),B.disconnect(),_guard1421=r,_guard1421?r.dispose():_guard1421;}};}\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var dn=typeof window<\"u\",Ja=dn?window:null,_i=dn?document:null,ct={OBJECT:0,ATTRIBUTE:1,CSS:2,TRANSFORM:3,CSS_VAR:4},Je={NUMBER:0,UNIT:1,COLOR:2,COMPLEX:3},Rt={NONE:0,AUTO:1,FORCE:2},bt={replace:0,none:1,blend:2},Xc=Symbol(),In=Symbol(),Ka=Symbol(),xi=Symbol(),bd=Symbol(),Ze=1e-11,wr=1e12,Pn=1e3,Cr=240,Dn=\"\",Td=\"var(\",Rr=[],Qa=(()=>{let i=new Map();return i.set(\"x\",\"translateX\"),i.set(\"y\",\"translateY\"),i.set(\"z\",\"translateZ\"),i;})(),Es=[\"perspective\",\"translateX\",\"translateY\",\"translateZ\",\"rotate\",\"rotateX\",\"rotateY\",\"rotateZ\",\"scale\",\"scaleX\",\"scaleY\",\"scaleZ\",\"skew\",\"skewX\",\"skewY\"],Ed=Es.reduce((i,e)=>({...i,[e]:e+\"(\"}),{}),Wt=()=>{},Ad=i=>i,wd=\/\\)\\s*[-.\\d]\/,Cd=\/(^#([\\da-f]{3}){1,2}$)|(^#([\\da-f]{4}){1,2}$)\/i,Rd=\/rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)\/i,Id=\/rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(-?\\d+|-?\\d*.\\d+)\\s*\\)\/i,Pd=\/hsl\\(\\s*(-?\\d+|-?\\d*.\\d+)\\s*,\\s*(-?\\d+|-?\\d*.\\d+)%\\s*,\\s*(-?\\d+|-?\\d*.\\d+)%\\s*\\)\/i,Dd=\/hsla\\(\\s*(-?\\d+|-?\\d*.\\d+)\\s*,\\s*(-?\\d+|-?\\d*.\\d+)%\\s*,\\s*(-?\\d+|-?\\d*.\\d+)%\\s*,\\s*(-?\\d+|-?\\d*.\\d+)\\s*\\)\/i,qc=\/[-+]?\\d*\\.?\\d+(?:e[-+]?\\d)?\/gi,Ld=\/^([-+]?\\d*\\.?\\d+(?:e[-+]?\\d+)?)([a-z]+|%)$\/i,Ud=\/([a-z])([A-Z])\/g,Nd=\/(\\*=|\\+=|-=)\/,Fd=\/var\\(\\s*(--[\\w-]+)(?:\\s*,\\s*([^)]+))?\\s*\\)\/;\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var As={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:Cr,loop:0,reversed:!1,alternate:!1,autoplay:!0,persist:!1,duration:Pn,delay:0,loopDelay:0,ease:\"out(2)\",composition:bt.replace,modifier:Ad,onBegin:Wt,onBeforeUpdate:Wt,onUpdate:Wt,onLoop:Wt,onPause:Wt,onComplete:Wt,onRender:Wt},Ir={current:null,root:_i},et={defaults:As,precision:4,timeScale:1,tickThreshold:200,editor:null},Yc={version:\"4.5.0\",engine:null};_guard1422=dn,_guard1422?(Ja.AnimeJS||(Ja.AnimeJS=[]),Ja.AnimeJS.push(Yc)):_guard1422;\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Zc=i=>i.replace(Ud,\"$1-$2\").toLowerCase(),tn=(i,e)=>i.indexOf(e)===0,Kn=Date.now,yi=Array.isArray,Hi=i=>{var _guard1423;return _guard1423=i,_guard1423?i.constructor===Object:_guard1423;},ws=i=>{var _guard1424;return _guard1424=typeof i==\"number\",_guard1424?!isNaN(i):_guard1424;},Sn=i=>typeof i==\"string\",fn=i=>typeof i==\"function\",qe=i=>typeof i>\"u\",Ln=i=>qe(i)||i===null,ja=i=>{var _guard1425;return _guard1425=dn,_guard1425?i instanceof SVGElement:_guard1425;},$c=i=>Cd.test(i),Jc=i=>tn(i,\"rgb\"),Kc=i=>tn(i,\"hsl\"),Bd=i=>{var _guard1426;return $c(i)||(_guard1426=Jc(i)||Kc(i),_guard1426?i[i.length-1]===\")\"||!wd.test(i):_guard1426);},Pr=i=>!et.defaults.hasOwnProperty(i),tx=[\"opacity\",\"rotate\",\"overflow\",\"color\"],zd=(i,e)=>{if(tx.includes(e))return!1;if(i.getAttribute(e)||e in i){if(e===\"scale\"){var _guard1427;let t=i.parentNode;return _guard1427=t,_guard1427?t.tagName===\"filter\":_guard1427;}return!0;}};var Gi=Math.pow,Vd=Math.sqrt,kd=Math.sin,Hd=Math.cos;var Gd=Math.floor,Wd=Math.asin;var Dr=Math.PI,Od=Math.round,Yt=(i,e,t)=>i<e?e:i>t?t:i,lt=(i,e)=>{if(e<0)return i;if(!e)return Od(i);let t=10**e;return Od(i*t)\/t;};var Cs=(i,e,t)=>t===1?e:t===0?i:i+(e-i)*t,Wi=i=>i===1\/0?wr:i===-1\/0?-wr:i,Qn=i=>i<=Ze?Ze:Wi(lt(i,11)),At=i=>yi(i)?[...i]:i,el=(i,e)=>{let t={...i};for(let n in e){let s=i[n];t[n]=qe(s)?e[n]:s;}return t;},at=(i,e,t,n=\"_prev\",s=\"_next\")=>{let r=i._head,o=s;for(_guard1428=t,_guard1428?(r=i._tail,o=n):_guard1428;r;){var _guard1428;let a=r[o];e(r),r=a;}},jn=(i,e,t=\"_prev\",n=\"_next\")=>{let s=e[t],r=e[n];s?s[n]=r:i._head=r,r?r[t]=s:i._tail=s,e[t]=null,e[n]=null;},bn=(i,e,t,n=\"_prev\",s=\"_next\")=>{let r=i._tail;for(;_guard1430=(_guard1429=r,_guard1429?t:_guard1429),_guard1430?t(r,e):_guard1430;){var _guard1429,_guard1430;r=r[n];}let o=r?r[s]:i._head;r?r[s]=e:i._head=e,o?o[n]=e:i._tail=e,e[n]=r,e[s]=o;};\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Xd=(i,e,t)=>{let n=i.style.transform;if(n){var _guard1437,_guard1438,_guard1439;let s=i[xi],r=0,o=n.length,a;for(;r<o;){for(;_guard1431=r<o,_guard1431?n.charCodeAt(r)===32:_guard1431;){var _guard1431;r++;}if(r>=o)break;let l=r;for(;_guard1432=r<o,_guard1432?n.charCodeAt(r)!==40:_guard1432;){var _guard1432;r++;}if(r>=o)break;let u=n.substring(l,r),h=1,d=r+1,f=-1,g=-1;for(r++;_guard1433=r<o,_guard1433?h>0:_guard1433;){var _guard1433,_guard1434,_guard1435,_guard1436;let m=n.charCodeAt(r);m===40?h++:m===41?h--:(_guard1436=(_guard1434=m===44,_guard1434?h===1:_guard1434),_guard1436?f===-1?f=r:(_guard1435=g===-1,_guard1435?g=r:_guard1435):_guard1436),r++;}let _=r-1;u===\"translate\"||u===\"translate3d\"?(f===-1?s.translateX=n.substring(d,_).trim():(s.translateX=n.substring(d,f).trim(),g===-1?s.translateY=n.substring(f+1,_).trim():(s.translateY=n.substring(f+1,g).trim(),s.translateZ=n.substring(g+1,_).trim())),a=n.substring(d,_)):u===\"scale\"||u===\"scale3d\"?f===-1?s.scale=n.substring(d,_).trim():(s.scaleX=n.substring(d,f).trim(),g===-1?s.scaleY=n.substring(f+1,_).trim():(s.scaleY=n.substring(f+1,g).trim(),s.scaleZ=n.substring(g+1,_).trim())):s[u]=n.substring(d,_);}if(_guard1437=e===\"translate3d\",_guard1437?a:_guard1437)return _guard1438=t,_guard1438?t[e]=a:_guard1438,a;let c=s[e];if(!qe(c))return _guard1439=t,_guard1439?t[e]=c:_guard1439,c;}return e===\"translate3d\"?\"0px, 0px, 0px\":e===\"rotate3d\"?\"0, 0, 0, 0deg\":tn(e,\"scale\")?\"1\":tn(e,\"rotate\")||tn(e,\"skew\")?\"0deg\":\"0px\";},tl=i=>{var _guard1443,_guard1444;let e=Dn;for(let t=0,n=Es.length;t<n;t++){var _guard1441,_guard1442;let s=Es[t],r=i[s];if(r!==void 0){var _guard1440;if(s===\"translateX\"){let o=i.translateY;if(o!==void 0){let a=i.translateZ;a!==void 0?(e+=`translate3d(${r},${o},${a}) `,t+=2):(e+=`translate(${r},${o}) `,t+=1);continue;}}if(_guard1440=s===\"scaleX\",_guard1440?i.scale===void 0:_guard1440){let o=i.scaleY;if(o!==void 0){let a=i.scaleZ;a!==void 0?(e+=`scale3d(${r},${o},${a}) `,t+=2):(e+=`scale(${r},${o}) `,t+=1);continue;}}e+=`${Ed[s]}${r}) `;}_guard1442=(_guard1441=s===\"rotateZ\",_guard1441?i.rotate3d!==void 0:_guard1441),_guard1442?e+=`rotate3d(${i.rotate3d}) `:_guard1442;}return _guard1443=i.matrix!==void 0,_guard1443?e+=`matrix(${i.matrix}) `:_guard1443,_guard1444=i.matrix3d!==void 0,_guard1444?e+=`matrix3d(${i.matrix3d}) `:_guard1444,e;};\/**\n * Anime.js - adapters - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Qc=[];function nl(i,e){if(!i)return null;let t=Qc.length;e:for(let n=0;n<t;n++){var _guard1445;let s=Qc[n];if(_guard1445=s.detect,_guard1445?!s.detect(i):_guard1445)continue;let r=s.targetAdapters;for(let o=0,a=r.length;o<a;o++){let c=r[o];if(c.detect(i)){var _guard1446;let l=c.props[e];if(_guard1446=l,_guard1446?!l.gate||l.gate(i):_guard1446)return l;break e;}}}for(let n=0;n<t;n++){var _guard1447;let s=Qc[n];if(_guard1447=s.detect,_guard1447?!s.detect(i):_guard1447)continue;let r=s.propertyResolvers;for(let o=0,a=r.length;o<a;o++){let c=r[o](i,e);if(c)return c;}}return null;}\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var nx=i=>{let e=Rd.exec(i)||Id.exec(i),t=qe(e[4])?1:+e[4];return[+e[1],+e[2],+e[3],t];},ix=i=>{let e=i.length,t=e===4||e===5;return[+(\"0x\"+i[1]+i[t?1:2]),+(\"0x\"+i[t?2:3]+i[t?2:4]),+(\"0x\"+i[t?3:5]+i[t?3:6]),e===5||e===9?+(+(\"0x\"+i[t?4:7]+i[t?4:8])\/255).toFixed(3):1];},jc=(i,e,t)=>{var _guard1448,_guard1449;return _guard1448=t<0,_guard1448?t+=1:_guard1448,_guard1449=t>1,_guard1449?t-=1:_guard1449,t<1\/6?i+(e-i)*6*t:t<1\/2?e:t<2\/3?i+(e-i)*(2\/3-t)*6:i;},sx=i=>{let e=Pd.exec(i)||Dd.exec(i),t=+e[1]\/360,n=+e[2]\/100,s=+e[3]\/100,r=qe(e[4])?1:+e[4],o,a,c;if(n===0)o=a=c=s;else{let l=s<.5?s*(1+n):s+n-s*n,u=2*s-l;o=lt(jc(u,l,t+1\/3)*255,0),a=lt(jc(u,l,t)*255,0),c=lt(jc(u,l,t-1\/3)*255,0);}return[o,a,c,r];},qd=i=>Jc(i)?nx(i):$c(i)?ix(i):Kc(i)?sx(i):[0,0,0,1];\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Tt=(i,e)=>qe(i)?e:i,Yd=(i,e)=>{var _guard1450,_guard1451;let t=i.match(Fd),n=e[In]?e:document.documentElement,s=getComputedStyle(n)?.getPropertyValue(t[1]);return _guard1451=(_guard1450=!s||s.trim()===Dn,_guard1450?t[2]:_guard1450),_guard1451?s=t[2].trim():_guard1451,s||0;},Un=(i,e,t,n,s,r)=>{var _guard1452;if(fn(i)){if(!s){let a=i(e,t,n,r);return isNaN(+a)?a||0:+a;}let o=()=>{let a=i(e,t,n,r);return isNaN(+a)?a||0:+a;};return s.func=o,o();}if(_guard1452=Sn(i),_guard1452?tn(i,Td):_guard1452){if(!s)return Yd(i,e);let o=()=>Yd(i,e);return s.func=o,o();}return i;},eu=(i,e)=>{var _guard1453;return i[In]?(_guard1453=i[Ka],_guard1453?zd(i,e):_guard1453)?ct.ATTRIBUTE:Es.includes(e)||Qa.get(e)?ct.TRANSFORM:tn(e,\"--\")?ct.CSS_VAR:e in i.style?ct.CSS:e in i?ct.OBJECT:ct.ATTRIBUTE:ct.OBJECT;},Zd=(i,e,t)=>{var _guard1454,_guard1455;let n=i.style[e];_guard1455=(_guard1454=n,_guard1454?t:_guard1454),_guard1455?t[e]=n:_guard1455;let s=n||getComputedStyle(i[bd]||i).getPropertyValue(e);return s===\"auto\"?\"0\":s;},Rs=(i,e,t,n)=>{let s=qe(t)?eu(i,e):t,r=nl(i,e);if(r){var _guard1456,_guard1457;let o=r.get(i);return _guard1457=(_guard1456=o,_guard1456?n:_guard1456),_guard1457?n[e]=o:_guard1457,o??0;}if(s===ct.OBJECT){var _guard1458,_guard1459;let o=i[e];return _guard1459=(_guard1458=o,_guard1458?n:_guard1458),_guard1459?n[e]=o:_guard1459,o||0;}if(s===ct.ATTRIBUTE){var _guard1460,_guard1461;let o=i.getAttribute(e);return _guard1461=(_guard1460=o,_guard1460?n:_guard1460),_guard1461?n[e]=o:_guard1461,o;}return s===ct.TRANSFORM?Xd(i,e,n):s===ct.CSS_VAR?Zd(i,e,n).trimStart():Zd(i,e,n);},Is=(i,e,t)=>t===\"-\"?i-e:t===\"+\"?i+e:i*e,il=()=>({t:Je.NUMBER,n:0,u:null,o:null,d:null,s:null}),Zt=(i,e)=>{var _guard1462;if(e.t=Je.NUMBER,e.n=0,e.u=null,e.o=null,e.d=null,e.s=null,!i)return e;let t=+i;if(!isNaN(t))return e.n=t,e;let n=i;_guard1462=n[1]===\"=\",_guard1462?(e.o=n[0],n=n.slice(2)):_guard1462;let s=n.includes(\" \")?!1:Ld.exec(n);if(s)return e.t=Je.UNIT,e.n=+s[1],e.u=s[2],e;if(e.o)return e.n=+n,e;if(Bd(n))return e.t=Je.COLOR,e.d=qd(n),e;{let r=n.match(qc);return e.t=Je.COMPLEX,e.d=r?r.map(Number):[],e.s=n.split(qc)||[],e;}},tu=(i,e)=>(e.t=i._valueType,e.n=i._toNumber,e.u=i._unit,e.o=null,e.d=At(i._toNumbers),e.s=At(i._strings),e),nn=il(),sl=(i,e,t)=>{let n=i._modifier,s=i._fromNumbers,r=i._toNumbers,o=i._strings,a=o[0];for(let c=0,l=r.length;c<l;c++){let u=n(lt(Cs(s[c],r[c],e),t)),h=o[c+1];a+=`${h?u+h:u}`,i._numbers[c]=u;}return a;};\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Lr=(i,e,t,n,s)=>{var _guard1464,_guard1465,_guard1466,_guard1467,_guard1468,_guard1469,_guard1470,_guard1471,_guard1472,_guard1473,_guard1474,_guard1475,_guard1476,_guard1477,_guard1478,_guard1479,_guard1480,_guard1481,_guard1482,_guard1483,_guard1484,_guard1485,_guard1486,_guard1523,_guard1524,_guard1525,_guard1526,_guard1527,_guard1528,_guard1529,_guard1530,_guard1531,_guard1532,_guard1533,_guard1534,_guard1535,_guard1536,_guard1537;let r=i.parent,o=i.duration,a=i.completed,c=i.iterationDuration,l=i.iterationCount,u=i._currentIteration,h=i._loopDelay,d=i._reversed,f=i._alternate,g=i._hasChildren,_=i._delay,m=i._currentTime,p=_+c,E=e-_,T=Yt(m,-_,o),y=Yt(E,-_,o),R=E-m,w=y>0,P=y>=o,F=o<=Ze,M=s===Rt.FORCE,S=0,L=E,z=0;if(l>1){var _guard1463;let ae=c+(P?0:h),H=~~(y\/ae);i._currentIteration=Yt(H,0,l),_guard1463=P,_guard1463?i._currentIteration--:_guard1463,S=i._currentIteration%2,L=y-H*ae||0;}let $=d^(_guard1464=f,_guard1464?S:_guard1464),Q=i._ease,O=P?$?0:o:$?c-L:L;_guard1465=Q,_guard1465?O=c*Q(O\/c)||0:_guard1465;let W=(r?r.backwards:E<m)?!$:!!$;if(i._currentTime=E,i._iterationTime=O,i.backwards=W,(_guard1466=w,_guard1466?!i.began:_guard1466)?(i.began=!0,_guard1469=(_guard1468=!t,_guard1468?!(_guard1467=r,_guard1467?W||!r.began:_guard1467):_guard1468),_guard1469?i.onBegin(i):_guard1469):(_guard1470=E<=0,_guard1470?i.began=!1:_guard1470),_guard1474=(_guard1473=(_guard1472=(_guard1471=!t,_guard1471?!g:_guard1471),_guard1472?w:_guard1472),_guard1473?i._currentIteration!==u:_guard1473),_guard1474?i.onLoop(i):_guard1474,M||(_guard1479=s===Rt.AUTO,_guard1479?(_guard1476=e>=((_guard1475=r,_guard1475?_>0:_guard1475)?0:_),_guard1476?e<=p:_guard1476)||(_guard1477=e<=_,_guard1477?T>_:_guard1477)||(_guard1478=e>=p,_guard1478?T!==o:_guard1478):_guard1479)||(_guard1480=O>=p,_guard1480?T!==o:_guard1480)||(_guard1482=(_guard1481=O<=_,_guard1481?T>0:_guard1481),_guard1482?!P:_guard1482)||(_guard1484=(_guard1483=e<=T,_guard1483?T===o:_guard1483),_guard1484?a:_guard1484)||(_guard1486=(_guard1485=P,_guard1485?!a:_guard1485),_guard1486?F:_guard1486)){var _guard1487,_guard1521,_guard1522;if(_guard1487=w,_guard1487?(i.computeDeltaTime(T),t||i.onBeforeUpdate(i)):_guard1487,!g){var _guard1519,_guard1520;let ae=M||(W?R*-1:R)>=et.tickThreshold,H=lt(i._offset+(r?r._offset:0)+_+O,12),q=i._head,ce,ge,Pe,Fe,ve=0;for(;q;){var _guard1488,_guard1489,_guard1490,_guard1491,_guard1492,_guard1493,_guard1494,_guard1495,_guard1496,_guard1497,_guard1498,_guard1499,_guard1500,_guard1501,_guard1502,_guard1503,_guard1504,_guard1513,_guard1514,_guard1515,_guard1516,_guard1517,_guard1518;let Ie=q._composition,J=q._currentTime,re=q._changeDuration,pe=q._absoluteStartTime+q._changeDuration,me=q._nextRep,Me=q._prevRep,Ne=Ie!==bt.none,it=Me?Me._absoluteStartTime+Me._changeDuration:0,C=(_guard1488=Me,_guard1488?Me.parent!==q.parent:_guard1488),tt=!me||me._isOverridden?pe:me.parent===q.parent?pe+me._delay:me._absoluteStartTime<me._absoluteUpdateStartTime?me._absoluteStartTime:me._absoluteUpdateStartTime;if(_guard1504=(_guard1499=ae||(_guard1498=J!==re||H<=tt||(_guard1490=(_guard1489=Me,_guard1489?!C:_guard1489),_guard1490?!me||me.parent!==q.parent:_guard1490),_guard1498?J!==0||H>=q._absoluteStartTime||(_guard1493=(_guard1492=(_guard1491=C,_guard1491?!q._hasFromValue:_guard1491),_guard1492?!Me._isOverridden:_guard1492),_guard1493?H>=it:_guard1493)||(_guard1497=(_guard1496=(_guard1495=(_guard1494=me,_guard1494?!me._isOverridden:_guard1494),_guard1495?me.parent===q.parent:_guard1495),_guard1496?me._currentTime!==0:_guard1496),_guard1497?O<me._startTime:_guard1497):_guard1498),_guard1499?!Me||C||O>=q._startTime:_guard1499),_guard1504?!Ne||(_guard1503=(_guard1501=(_guard1500=!q._isOverridden,_guard1500?!q._isOverlapped||H<=pe:_guard1500),_guard1501?!me||me._isOverridden||H<=tt:_guard1501),_guard1503?!Me||Me._isOverridden||(C?H>=q._absoluteStartTime||(_guard1502=!q._hasFromValue,_guard1502?H>=it:_guard1502):H>=it+q._delay):_guard1503):_guard1504){var _guard1505,_guard1507,_guard1508,_guard1509;let De=q._currentTime=Yt(O-q._startTime,0,re),Ae=q._ease(De\/q._updateDuration),Se=q._modifier,xe=q._valueType,le=q._tweenType,be=le===ct.OBJECT,Re=xe===Je.NUMBER,Ve=(_guard1505=Re,_guard1505?be:_guard1505)||Ae===0||Ae===1?-1:et.precision,b,x;if(Re)b=x=Se(lt(Cs(q._fromNumber,q._toNumber,Ae),Ve));else if(xe===Je.UNIT)x=Se(lt(Cs(q._fromNumber,q._toNumber,Ae),Ve)),b=`${x}${q._unit}`;else if(xe===Je.COLOR){var _guard1506;let B=q._numbers,A=q._fromNumbers,I=q._toNumbers,D=1-Ae,X=A[0],G=A[1],ie=A[2],te=I[0],ne=I[1],oe=I[2];B[0]=Se(Math.sqrt(X*X*D+te*te*Ae)),B[1]=Se(Math.sqrt(G*G*D+ne*ne*Ae)),B[2]=Se(Math.sqrt(ie*ie*D+oe*oe*Ae)),B[3]=Se(Cs(A[3],I[3],Ae)),_guard1506=!q._setter||n,_guard1506?b=`rgba(${lt(B[0],0)},${lt(B[1],0)},${lt(B[2],0)},${B[3]})`:_guard1506;}else _guard1507=xe===Je.COMPLEX,_guard1507?b=sl(q,Ae,Ve):_guard1507;if(_guard1508=Ne,_guard1508?q._number=x:_guard1508,_guard1509=!n,_guard1509?Ie!==bt.blend:_guard1509){var _guard1510,_guard1511,_guard1512;let B=q.property;ce=q.target,q._setter?q._setter(ce,x,q):be?ce[B]=b:le===ct.ATTRIBUTE?ce.setAttribute(B,b):(ge=ce.style,le===ct.TRANSFORM?(_guard1510=ce!==Pe,_guard1510?(Pe=ce,Fe=ce[xi]):_guard1510,Fe[B]=b,ve=1):le===ct.CSS?ge[B]=b:(_guard1511=le===ct.CSS_VAR,_guard1511?ge.setProperty(B,b):_guard1511)),_guard1512=w,_guard1512?z=1:_guard1512;}else q._value=b;}else _guard1516=(_guard1515=(_guard1514=(_guard1513=J,_guard1513?Me:_guard1513),_guard1514?!C:_guard1514),_guard1515?O<q._startTime:_guard1515),_guard1516?q._currentTime=0:_guard1516;_guard1518=(_guard1517=ve,_guard1517?q._renderTransforms:_guard1517),_guard1518?(ge.transform=tl(Fe),ve=0):_guard1518,q=q._next;}_guard1520=(_guard1519=!t,_guard1519?z:_guard1519),_guard1520?i.onRender(i):_guard1520;}_guard1522=(_guard1521=!t,_guard1521?w:_guard1521),_guard1522?i.onUpdate(i):_guard1522;}return(_guard1523=r,_guard1523?F:_guard1523)?(_guard1530=(_guard1529=!t,_guard1529?(_guard1526=(_guard1525=(_guard1524=r.began,_guard1524?!W:_guard1524),_guard1525?E>0:_guard1525),_guard1526?!a:_guard1526)||(_guard1528=(_guard1527=W,_guard1527?E<=Ze:_guard1527),_guard1528?a:_guard1528):_guard1529),_guard1530?(i.onComplete(i),i.completed=!W):_guard1530):(_guard1531=w,_guard1531?P:_guard1531)?l===1\/0?i._startTime+=i.duration:(_guard1537=i._currentIteration>=l-1,_guard1537?(i.paused=!0,_guard1536=(_guard1532=!a,_guard1532?!g:_guard1532),_guard1536?(i.completed=!0,_guard1535=(_guard1534=!t,_guard1534?!(_guard1533=r,_guard1533?W||!r.began:_guard1533):_guard1534),_guard1535?(i.onComplete(i),i._resolve(i)):_guard1535):_guard1536):_guard1537):i.completed=!1,z;},Nn=(i,e,t,n,s)=>{let r=i._currentIteration;if(Lr(i,e,t,n,s),i._hasChildren){var _guard1538,_guard1548,_guard1549,_guard1550,_guard1551;let o=i,a=o.backwards,c=n?e:o._iterationTime,l=Kn(),u=0,h=!0;if(_guard1538=!n,_guard1538?o._currentIteration!==r:_guard1538){let d=o.iterationDuration;at(o,f=>{var _guard1539,_guard1540,_guard1541;if(!a)_guard1541=(_guard1540=(_guard1539=!f.completed,_guard1539?!f.backwards:_guard1539),_guard1540?f._currentTime<f.iterationDuration:_guard1540),_guard1541?Lr(f,d,t,1,Rt.FORCE):_guard1541,f.began=!1,f.completed=!1;else{var _guard1542,_guard1543,_guard1544;let g=f.duration,_=f._offset+f._delay,m=_+g;_guard1544=(_guard1543=(_guard1542=!t,_guard1542?g<=Ze:_guard1542),_guard1543?!_||m===d:_guard1543),_guard1544?f.onComplete(f):_guard1544;}}),t||o.onLoop(o);}at(o,d=>{var _guard1545,_guard1546,_guard1547;let f=lt((c-d._offset)*d._speed,12);if(_guard1545=a,_guard1545?f>d._delay+d.duration:_guard1545)return;let g=d._fps<o._fps?d.requestTick(l):s;u+=Lr(d,f,t,n,g),_guard1547=(_guard1546=!d.completed,_guard1546?h:_guard1546),_guard1547?h=!1:_guard1547;},a),_guard1549=(_guard1548=!t,_guard1548?u:_guard1548),_guard1549?o.onRender(o):_guard1549,_guard1551=(_guard1550=h||a,_guard1550?o._currentTime>=o.duration:_guard1550),_guard1551?(o.paused=!0,o.completed||(o.completed=!0,t||(o.onComplete(o),o._resolve(o)))):_guard1551;}};\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var $d={},rl=(i,e,t)=>{var _guard1552,_guard1553;if(t===ct.TRANSFORM){let n=Qa.get(i);return n||i;}else if(t===ct.CSS||(_guard1553=(_guard1552=t===ct.ATTRIBUTE,_guard1552?ja(e):_guard1552),_guard1553?i in e.style:_guard1553)){let n=$d[i];if(n)return n;{var _guard1554;let s=(_guard1554=i,_guard1554?Zc(i):_guard1554);return $d[i]=s,s;}}else return i;},Ur=(i,e=!1)=>{if(i._hasChildren)at(i,t=>Ur(t,e),!0);else{let t=i;t.pause(),at(t,n=>{var _guard1556,_guard1557,_guard1559,_guard1562;let s=n.property,r=n.target,o=n._tweenType,a=n._inlineValue,c=Ln(a)||a===Dn;if(n._setter){var _guard1555;if(_guard1555=!e,_guard1555?!c:_guard1555){if(Zt(a,nn),nn.d){let l=nn.d,u=n._numbers;for(let h=0,d=l.length;h<d;h++)u[h]=l[h];}else n._number=nn.n;n._setter(n.target,n._number,n);}}else if(o===ct.OBJECT)_guard1557=(_guard1556=!e,_guard1556?!c:_guard1556),_guard1557?r[s]=a:_guard1557;else if(r[In])if(o===ct.ATTRIBUTE)e||(c?r.removeAttribute(s):r.setAttribute(s,a));else{let l=r.style;if(o===ct.TRANSFORM){var _guard1558;let u=r[xi];c?delete u[s]:u[s]=a,_guard1558=n._renderTransforms,_guard1558?Object.keys(u).length?l.transform=tl(u):l.removeProperty(\"transform\"):_guard1558;}else c?l.removeProperty(Zc(s)):l[s]=a;}_guard1562=(_guard1559=r[In],_guard1559?t._tail===n:_guard1559),_guard1562?t.targets.forEach(l=>{var _guard1560,_guard1561;_guard1561=(_guard1560=l.getAttribute,_guard1560?l.getAttribute(\"style\")===Dn:_guard1560),_guard1561?l.removeAttribute(\"style\"):_guard1561;}):_guard1562;});}return i;};\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Ps=class{constructor(e=0){this.deltaTime=0,this._currentTime=e,this._lastTickTime=e,this._startTime=e,this._lastTime=e,this._frameDuration=Pn\/Cr,this._fps=Cr,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null;}get fps(){return this._fps;}set fps(e){var _guard1563;let t=+e,n=t<Ze?Ze:t,s=Pn\/n;_guard1563=n>As.frameRate,_guard1563?As.frameRate=n:_guard1563,this._fps=n,this._frameDuration=s;}get speed(){return this._speed;}set speed(e){let t=+e;this._speed=t<Ze?Ze:t;}requestTick(e){let t=this._frameDuration,n=e-this._lastTickTime,s=t*.25,r=s<4?s:4;return n+r<t?Rt.NONE:(this._lastTickTime=n>=t?e-n%t:e,Rt.AUTO);}computeDeltaTime(e){let t=e-this._lastTime;return this.deltaTime=t,this._lastTime=e,t;}};\/**\n * Anime.js - animation - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var ei={animation:null,update:Wt},Jd=i=>{let e=ei.animation;return e||(e={duration:Ze,computeDeltaTime:Wt,_offset:0,_delay:0,_head:null,_tail:null},ei.animation=e,ei.update=()=>{i.forEach(t=>{for(let n in t){let s=t[n],r=s._head;if(r){let o=r._valueType,a=o===Je.COMPLEX||o===Je.COLOR?At(r._fromNumbers):null,c=r._fromNumber,l=s._tail;for(;_guard1564=l,_guard1564?l!==r:_guard1564;){var _guard1564;if(a)for(let u=0,h=l._numbers.length;u<h;u++)a[u]+=l._numbers[u];else c+=l._number;l=l._prevAdd;}r._toNumber=c,r._toNumbers=a;}}}),Lr(e,1,1,0,Rt.FORCE);}),e;};\/**\n * Anime.js - engine - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Kd=dn?requestAnimationFrame:setImmediate,rx=dn?cancelAnimationFrame:clearImmediate,nu=class extends Ps{constructor(e){super(e),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=As,this.paused=!0,this.reqId=0;}update(){let e=this._currentTime=Kn();if(this.requestTick(e)){this.computeDeltaTime(e);let t=this._speed,n=this._fps,s=this._head;for(;s;){var _guard1565,_guard1566;let r=s._next;s.paused?(jn(this,s),this._hasChildren=!!this._tail,s._running=!1,_guard1566=(_guard1565=s.completed,_guard1565?!s._cancelled:_guard1565),_guard1566?s.cancel():_guard1566):Nn(s,(e-s._startTime)*s._speed*t,0,0,s._fps<n?s.requestTick(e):Rt.AUTO),s=r;}ei.update();}}wake(){var _guard1567,_guard1568;return _guard1568=(_guard1567=this.useDefaultMainLoop,_guard1567?!this.reqId:_guard1567),_guard1568?(this.requestTick(Kn()),this.reqId=Kd(Qd)):_guard1568,this;}pause(){if(this.reqId)return this.paused=!0,ox();}resume(){if(this.paused)return this.paused=!1,at(this,e=>e.resetTime()),this.wake();}get speed(){return this._speed*(et.timeScale===1?1:Pn);}set speed(e){var _guard1569;let t=e*et.timeScale;_guard1569=this._speed!==t,_guard1569?(this._speed=t,at(this,n=>n.speed=n._speed)):_guard1569;}get timeUnit(){return et.timeScale===1?\"ms\":\"s\";}set timeUnit(e){let n=e===\"s\",s=n?.001:1;if(et.timeScale!==s){et.timeScale=s,et.tickThreshold=200*s;let r=n?.001:Pn;this.defaults.duration*=r,this._speed*=r;}}get precision(){return et.precision;}set precision(e){et.precision=e;}},It=(_guard1571=>{let i=new nu(Kn());return _guard1571=dn,_guard1571?(Yc.engine=i,_i.addEventListener(\"visibilitychange\",()=>{var _guard1570;_guard1570=i.pauseOnDocumentHidden,_guard1570?_i.hidden?i.pause():i.resume():_guard1570;})):_guard1571,i;})(),Qd=()=>{It._head?(It.reqId=Kd(Qd),It.update()):It.reqId=0;},ox=()=>(rx(It.reqId),It.reqId=0,It);\/**\n * Anime.js - animation - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var ol={_rep:new WeakMap(),_add:new Map()},Fr=(i,e,t=\"_rep\")=>{let n=ol[t],s=n.get(i);return s||(s={},n.set(i,s)),s[e]?s[e]:s[e]={_head:null,_tail:null};},ax=(i,e)=>i._isOverridden||i._absoluteStartTime>e._absoluteStartTime,Nr=i=>{i._isOverlapped=1,i._isOverridden=1,i._changeDuration=Ze,i._currentTime=Ze;},al=(i,e)=>{let t=i._composition;if(t===bt.replace){let n=i._absoluteStartTime;bn(e,i,ax,\"_prevRep\",\"_nextRep\");let s=i._prevRep;if(s){var _guard1572,_guard1573;let r=s.parent,o=s._absoluteEndTime;if(_guard1573=(_guard1572=i.parent.id!==r.id,_guard1572?r.iterationCount>1:_guard1572),_guard1573?o+(r.duration-r.iterationDuration)>n:_guard1573){Nr(s);let l=s._prevRep;for(;_guard1574=l,_guard1574?l.parent.id===r.id:_guard1574;){var _guard1574;Nr(l),l=l._prevRep;}}let a=i._absoluteUpdateStartTime;if(o>a){var _guard1575;let l=s._startTime,u=o-(l+s._updateDuration),h=lt(a-u-l,12);s._changeDuration=h,s._currentTime=h,s._isOverlapped=1,_guard1575=h<Ze,_guard1575?Nr(s):_guard1575;}let c=i.parent.parent;if(!c||c!==r.parent){let l=!0;if(at(r,u=>{u._isOverlapped||(l=!1);}),l){let u=r.parent;if(u){var _guard1577;let h=!0;at(u,d=>{var _guard1576;_guard1576=d!==r,_guard1576?at(d,f=>{f._isOverlapped||(h=!1);}):_guard1576;}),_guard1577=h,_guard1577?u.cancel():_guard1577;}else r.cancel();}}}}else if(t===bt.blend){let n=Fr(i.target,i.property,\"_add\"),s=Jd(ol._add),r=n._head;r||(r={...i},r._composition=bt.replace,r._updateDuration=Ze,r._startTime=0,r._numbers=At(i._fromNumbers),r._number=0,r._next=null,r._prev=null,bn(n,r),bn(s,r));let o=i._toNumber;if(i._fromNumber=r._fromNumber-o,i._toNumber=0,i._numbers=At(i._fromNumbers),i._number=0,r._fromNumber=o,i._toNumbers.length){let a=At(i._toNumbers);a.forEach((c,l)=>{i._fromNumbers[l]=r._fromNumbers[l]-c,i._toNumbers[l]=0;}),r._fromNumbers=a;}bn(n,i,null,\"_prevAdd\",\"_nextAdd\");}return i;},iu=i=>{let e=i._composition;if(e!==bt.none){let t=i.target,n=i.property,o=ol._rep.get(t)[n];if(jn(o,i,\"_prevRep\",\"_nextRep\"),e===bt.blend){var _guard1578;let a=ol._add,c=a.get(t);if(!c)return;let l=c[n],u=ei.animation;jn(l,i,\"_prevAdd\",\"_nextAdd\");let h=l._head;if(_guard1578=h,_guard1578?h===l._tail:_guard1578){var _guard1579;jn(l,h,\"_prevAdd\",\"_nextAdd\"),jn(u,h);let d=!0;for(let f in c)if(c[f]._head){d=!1;break;}_guard1579=d,_guard1579?a.delete(t):_guard1579;}}}return i;},jd=(i,e,t)=>{let n=!1;return at(e,s=>{let r=s.target;if(i.includes(r)){var _guard1580,_guard1581,_guard1582,_guard1583,_guard1584,_guard1585;let o=s.property,a=s._tweenType,c=rl(t,r,a);_guard1585=!c||(_guard1580=c,_guard1580?c===o:_guard1580),_guard1585?(_guard1584=(_guard1583=(_guard1582=(_guard1581=s.parent._tail===s,_guard1581?s._tweenType===ct.TRANSFORM:_guard1581),_guard1582?s._prev:_guard1582),_guard1583?s._prev._tweenType===ct.TRANSFORM:_guard1583),_guard1584?s._prev._renderTransforms=1:_guard1584,jn(e,s),iu(s),n=!0):_guard1585;}},!0),n;},su=(i,e,t)=>{var _guard1588,_guard1589,_guard1590;let n=e||It,s;if(n._hasChildren){let r=0;at(n,o=>{var _guard1586;if(!o._hasChildren)if(s=jd(i,o,t),_guard1586=s,_guard1586?!o._head:_guard1586)o.cancel(),jn(n,o);else{var _guard1587;let c=o._offset+o._delay+o.duration;_guard1587=c>r,_guard1587?r=c:_guard1587;}o._head?su(i,o,t):o._hasChildren=!1;},!0),qe(n.iterationDuration)||(n.iterationDuration=r);}else s=jd(i,n,t);_guard1590=(_guard1588=s,_guard1588?!n._head:_guard1588),_guard1590?(n._hasChildren=!1,_guard1589=n.cancel,_guard1589?n.cancel():_guard1589):_guard1590;};\/**\n * Anime.js - timer - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var ef=i=>(i.paused=!0,i.began=!1,i.completed=!1,i),ru=i=>{var _guard1592;return _guard1592=i._cancelled,_guard1592?(i._hasChildren?at(i,ru):at(i,e=>{var _guard1591;_guard1591=e._composition!==bt.none,_guard1591?al(e,Fr(e.target,e.property)):_guard1591;}),i._cancelled=0):_guard1592,i;},tf=0,lx=(i,e)=>i._priority>e._priority,Xi=class extends Ps{constructor(e={},t=null,n=0){var _guard1593;super(0),++tf;let{id:s,delay:r,duration:o,reversed:a,alternate:c,loop:l,loopDelay:u,autoplay:h,frameRate:d,playbackRate:f,priority:g,onComplete:_,onLoop:m,onPause:p,onBegin:E,onBeforeUpdate:T,onUpdate:y}=e;_guard1593=Ir.current,_guard1593?Ir.current.register(this):_guard1593;let R=t?0:It._lastTickTime,w=t?t.defaults:et.defaults,P=fn(r)||qe(r)?w.delay:+r,F=fn(o)||qe(o)?1\/0:+o,M=Tt(l,w.loop),S=Tt(u,w.loopDelay),L=M===!0||M===1\/0||M<0?1\/0:M+1,z=0;t?z=n:(It.reqId||It.requestTick(Kn()),z=(It._lastTickTime-It._startTime)*et.timeScale),this.id=qe(s)?tf:s,this.parent=t,this.duration=Wi((F+S)*L-S)||Ze,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=E||w.onBegin,this.onBeforeUpdate=T||w.onBeforeUpdate,this.onUpdate=y||w.onUpdate,this.onLoop=m||w.onLoop,this.onPause=p||w.onPause,this.onComplete=_||w.onComplete,this.iterationDuration=F,this.iterationCount=L,this._autoplay=t?!1:Tt(h,w.autoplay),this._offset=z,this._delay=P,this._loopDelay=S,this._iterationTime=0,this._currentIteration=0,this._resolve=Wt,this._running=!1,this._reversed=+Tt(a,w.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=Tt(c,w.alternate),this._prev=null,this._next=null,this._lastTickTime=R,this._startTime=R,this._lastTime=R,this._fps=Tt(d,w.frameRate),this._speed=Tt(f,w.playbackRate),this._priority=+Tt(g,1);}get cancelled(){return!!this._cancelled;}set cancelled(e){e?this.cancel():this.reset(!0).play();}get currentTime(){return Yt(lt(this._currentTime,et.precision),-this._delay,this.duration);}set currentTime(e){let t=this.paused;this.pause().seek(+e),t||this.resume();}get iterationCurrentTime(){return Yt(lt(this._iterationTime,et.precision),0,this.iterationDuration);}set iterationCurrentTime(e){this.currentTime=this.iterationDuration*this._currentIteration+e;}get progress(){return Yt(lt(this._currentTime\/this.duration,10),0,1);}set progress(e){this.currentTime=this.duration*e;}get iterationProgress(){return Yt(lt(this._iterationTime\/this.iterationDuration,10),0,1);}set iterationProgress(e){let t=this.iterationDuration;this.currentTime=t*this._currentIteration+t*e;}get currentIteration(){return this._currentIteration;}set currentIteration(e){this.currentTime=this.iterationDuration*Yt(+e,0,this.iterationCount-1);}get reversed(){return!!this._reversed;}set reversed(e){e?this.reverse():this.play();}get speed(){return super.speed;}set speed(e){super.speed=e,this.resetTime();}reset(e=!1){var _guard1594,_guard1595,_guard1596;return ru(this),_guard1595=(_guard1594=this._reversed,_guard1594?!this._reverse:_guard1594),_guard1595?this.reversed=!1:_guard1595,this._iterationTime=this.iterationDuration,Nn(this,0,1,~~e,Rt.FORCE),ef(this),_guard1596=this._hasChildren,_guard1596?at(this,ef):_guard1596,this;}init(e=!1){var _guard1597,_guard1598,_guard1599,_guard1600;this.fps=this._fps,this.speed=this._speed,_guard1598=(_guard1597=!e,_guard1597?this._hasChildren:_guard1597),_guard1598?Nn(this,this.duration,1,~~e,Rt.FORCE):_guard1598,this.reset(e);let t=this._autoplay;return t===!0?this.resume():(_guard1600=(_guard1599=t,_guard1599?!qe(t.linked):_guard1599),_guard1600?t.link(this):_guard1600),this;}resetTime(){let e=1\/(this._speed*It._speed);return this._startTime=Kn()-(this._currentTime+this._delay)*e,this;}pause(){return this.paused?this:(this.paused=!0,this.onPause(this),this);}resume(){var _guard1601;return this.paused?(this.paused=!1,(_guard1601=this.duration<=Ze,_guard1601?!this._hasChildren:_guard1601)?Nn(this,Ze,0,0,Rt.FORCE):(this._running||(bn(It,this,lx),It._hasChildren=!0,this._running=!0),this.resetTime(),this._startTime-=12,It.wake()),this):this;}restart(){return this.reset().resume();}seek(e,t=0,n=0){ru(this),this.completed=!1;let s=this.paused;return this.paused=!0,Nn(this,e+this._delay,~~t,~~n,Rt.AUTO),s?this:this.resume();}alternate(){var _guard1602;let e=this._reversed,t=this.iterationCount,n=this.iterationDuration,s=t===1\/0?Gd(wr\/n):t;return this._reversed=+((_guard1602=this._alternate,_guard1602?!(s%2):_guard1602)?e:!e),t===1\/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*s-this._currentTime),this.resetTime(),this;}play(){var _guard1603;return _guard1603=this._reversed,_guard1603?this.alternate():_guard1603,this.resume();}reverse(){return this._reversed||this.alternate(),this.resume();}cancel(){return this._hasChildren?at(this,e=>e.cancel(),!0):at(this,iu),this._cancelled=1,this.pause();}stretch(e){let t=this.duration,n=Qn(e);if(t===n)return this;let s=e\/t,r=e<=Ze;return this.duration=r?Ze:n,this.iterationDuration=r?Ze:Qn(this.iterationDuration*s),this._offset*=s,this._delay*=s,this._loopDelay*=s,this;}revert(){var _guard1604,_guard1605,_guard1606;Nn(this,0,1,0,Rt.AUTO);let e=this._autoplay;return _guard1606=(_guard1605=(_guard1604=e,_guard1604?e.linked:_guard1604),_guard1605?e.linked===this:_guard1605),_guard1606?e.revert():_guard1606,this.cancel();}complete(e=0){return this.seek(this.duration,e).cancel();}then(e=Wt){let t=this.then,n=()=>{this.then=null,e(this),this.then=t,this._resolve=Wt;};return new Promise(s=>{var _guard1607;return this._resolve=()=>s(n()),_guard1607=this.completed,_guard1607?this._resolve():_guard1607,this;});}};\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/function nf(i){let e=Sn(i)?Ir.root.querySelectorAll(i):i;if(e instanceof NodeList||e instanceof HTMLCollection)return e;}function ll(i){var _guard1608;if(Ln(i))return[];if(!dn)return(_guard1608=yi(i),_guard1608?i.flat(1\/0):_guard1608)||[i];if(yi(i)){let t=i.flat(1\/0),n=[];for(let s=0,r=t.length;s<r;s++){let o=t[s];if(!Ln(o)){let a=nf(o);if(a)for(let c=0,l=a.length;c<l;c++){let u=a[c];if(!Ln(u)){let h=!1;for(let d=0,f=n.length;d<f;d++)if(n[d]===u){h=!0;break;}h||n.push(u);}}else{let c=!1;for(let l=0,u=n.length;l<u;l++)if(n[l]===o){c=!0;break;}c||n.push(o);}}}return n;}let e=nf(i);return e?Array.from(e):[i];}function sf(i){let e=ll(i),t=e.length;for(let n=0;n<t;n++){let s=e[n];if(!s[Xc]){var _guard1609;s[Xc]=!0;let r=ja(s);_guard1609=s.nodeType||r,_guard1609?(s[In]=!0,s[Ka]=r,s[xi]={}):_guard1609;}}return e;}\/**\n * Anime.js - core - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var ou={deg:1,rad:180\/Dr,turn:360},rf={},au=(i,e,t,n=!1)=>{var _guard1610,_guard1611;let s=e.u,r=e.n;if(_guard1610=e.t===Je.UNIT,_guard1610?s===t:_guard1610)return e;let o=r+s+t,a=rf[o];if(_guard1611=!qe(a),_guard1611?!n:_guard1611)e.n=a;else{let c;if(s in ou)c=r*ou[s]\/ou[t];else{var _guard1612;let u=i.cloneNode(),h=i.parentNode,d=(_guard1612=h,_guard1612?h!==_i:_guard1612)?h:_i.body;d.appendChild(u);let f=u.style;f.width=100+s;let g=u.offsetWidth||100;f.width=100+t;let _=u.offsetWidth||100,m=g\/_;d.removeChild(u),c=m*r;}e.n=c,rf[o]=c;}return e.t,Je.UNIT,e.u=t,e;};\/**\n * Anime.js - easings - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var ti=i=>i;\/**\n * Anime.js - easings - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Or=(i=1.68)=>e=>Gi(e,+i),cu={in:i=>e=>i(e),out:i=>e=>1-i(1-e),inOut:i=>e=>e<.5?i(e*2)\/2:1-i(e*-2+2)\/2,outIn:i=>e=>e<.5?(1-i(1-e*2))\/2:(i(e*2-1)+1)\/2},cx=Dr\/2,of=Dr*2,af={[Dn]:Or,Quad:Or(2),Cubic:Or(3),Quart:Or(4),Quint:Or(5),Sine:i=>1-Hd(i*cx),Circ:i=>1-Vd(1-i*i),Expo:i=>i?Gi(2,10*i-10):0,Bounce:i=>{let e,t=4;for(;i<((e=Gi(2,--t))-1)\/11;);return 1\/Gi(4,3-t)-7.5625*Gi((e*3-2)\/22-i,2);},Back:(i=1.7)=>e=>(+i+1)*e*e*e-+i*e*e,Elastic:(i=1,e=.3)=>{let t=Yt(+i,1,10),n=Yt(+e,Ze,2),s=n\/of*Wd(1\/t),r=of\/n;return o=>o===0||o===1?o:-t*Gi(2,-10*(1-o))*kd((1-o-s)*r);}},lu=(()=>{let i={linear:ti,none:ti};for(let e in cu)for(let t in af){let n=af[t],s=cu[e];i[e+t]=t===Dn||t===\"Back\"||t===\"Elastic\"?(r,o)=>s(n(r,o)):s(n);}return i;})(),cl={linear:ti,none:ti},ux=i=>{if(cl[i])return cl[i];if(i.indexOf(\"(\")<=-1){let t=cu[i]||i.includes(\"Back\")||i.includes(\"Elastic\")?lu[i]():lu[i];return t?cl[i]=t:ti;}else{let e=i.slice(0,-1).split(\"(\"),t=lu[e[0]];return t?cl[i]=t(...e[1].split(\",\")):ti;}},lf=[\"steps(\",\"irregular(\",\"linear(\",\"cubicBezier(\"],Br=i=>{if(Sn(i)){for(let t=0,n=lf.length;t<n;t++)if(tn(i,lf[t]))return console.warn(`String syntax for \\`ease: \"${i}\"\\` has been removed from the core and replaced by importing and passing the easing function directly: \\`ease: ${i}\\``),ti;}return fn(i)?i:Sn(i)?ux(i):ti;};\/**\n * Anime.js - animation - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Xe=il(),Ke=il(),Ds={},ul={func:null},hl={func:null},dl=[null],Ls=[null,null],fl={to:null},hx=0,cf=0,vi,Fn,dx=(i,e)=>{let t={};if(yi(i)){let n=[].concat(...i.map(s=>Object.keys(s))).filter(Pr);for(let s=0,r=n.length;s<r;s++){let o=n[s],a=i.map(c=>{let l={};for(let u in c){var _guard1613;let h=c[u];Pr(u)?(_guard1613=u===o,_guard1613?l.to=h:_guard1613):l[u]=h;}return l;});t[o]=a;}}else{let n=Tt(e.duration,et.defaults.duration);Object.keys(i).map(r=>({o:parseFloat(r)\/100,p:i[r]})).sort((r,o)=>r.o-o.o).forEach(r=>{let o=r.o,a=r.p;for(let c in a)if(Pr(c)){var _guard1614,_guard1615;let l=t[c];l||(l=t[c]=[]);let u=o*n,h=l.length,d=l[h-1],f={to:a[c]},g=0;for(let _=0;_<h;_++)g+=l[_].duration;_guard1614=h===1,_guard1614?f.from=d.to:_guard1614,_guard1615=a.ease,_guard1615?f.ease=a.ease:_guard1615,f.duration=u-(h?g:0),l.push(f);}return r;});for(let r in t){let o=t[r],a;for(let c=0,l=o.length;c<l;c++){let u=o[c],h=u.ease;u.ease=a||void 0,a=h;}o[0].duration||o.shift();}}return t;},Us=class extends Xi{constructor(e,t,n,s,r=!1,o=0,a){var _guard1616,_guard1617,_guard1653,_guard1654;super(t,n,s),this._head,this._tail,++cf;let c=sf(e),l=c.length,u=t.keyframes,h=u?el(dx(u,t),t):t,{id:d,delay:f,duration:g,ease:_,playbackEase:m,modifier:p,composition:E,onRender:T}=h,y=n?n.defaults:et.defaults,R=Tt(_,y.ease),w=Tt(m,y.playbackEase),P=w?Br(w):null,F=!qe(R.ease),M=F?R.ease:Tt(_,P?\"linear\":y.ease),S=F?R.settlingDuration:Tt(g,y.duration),L=Tt(f,y.delay),z=p||y.modifier,$=(_guard1616=qe(E),_guard1616?l>=Pn:_guard1616)?bt.none:qe(E)?y.composition:E,Q=this._offset+(n?n._offset:0);_guard1617=F,_guard1617?R.parent=this:_guard1617;let O=NaN,W=NaN,ae=0,H=0;for(let q=0;q<l;q++){let ce=c[q],ge=o||q,Pe=a||c,Fe=NaN,ve=NaN;for(let Ie in h)if(Pr(Ie)){var _guard1618,_guard1619,_guard1646,_guard1647,_guard1648;let J=eu(ce,Ie),re=nl(ce,Ie),pe=rl(Ie,ce,J),me=h[Ie],Me=yi(me);if(_guard1619=(_guard1618=r,_guard1618?!Me:_guard1618),_guard1619?(Ls[0]=me,Ls[1]=me,me=Ls):_guard1619,Me){var _guard1620,_guard1621;let Ae=me.length,Se=!Hi(me[0]);(_guard1620=Ae===2,_guard1620?Se:_guard1620)?(fl.to=me,dl[0]=fl,vi=dl):(_guard1621=Ae>2,_guard1621?Se:_guard1621)?(vi=[],me.forEach((xe,le)=>{le?le===1?(Ls[1]=xe,vi.push(Ls)):vi.push(xe):Ls[0]=xe;})):vi=me;}else dl[0]=me,vi=dl;let Ne=null,it=null,C=NaN,tt=0,De=0;for(let Ae=vi.length;De<Ae;De++){var _guard1622,_guard1623,_guard1624,_guard1625,_guard1626,_guard1627,_guard1628,_guard1629,_guard1630,_guard1636,_guard1637,_guard1638,_guard1639,_guard1640,_guard1641,_guard1642,_guard1643,_guard1644,_guard1645;let Se=vi[De];Hi(Se)?Fn=Se:(fl.to=Se,Fn=fl),ul.func=null,hl.func=null;let xe=Un(Tt(Fn.composition,$),ce,ge,Pe,null,null),le=ws(xe)?xe:bt[xe];_guard1623=(_guard1622=!Ne,_guard1622?le!==bt.none:_guard1622),_guard1623?Ne=Fr(ce,pe):_guard1623;let be=Ne?Ne._tail:null,Re=(_guard1625=(_guard1624=n,_guard1624?be:_guard1624),_guard1625?be.parent.parent===n:_guard1625)?be:it,Ve=Un(Fn.to,ce,ge,Pe,ul,Re),b;(_guard1626=Hi(Ve),_guard1626?!qe(Ve.to):_guard1626)?(Fn=Ve,b=Ve.to):b=Ve;let x=Un(Fn.from,ce,ge,Pe,hl,Re),B=Fn.ease||M,A=Un(B,ce,ge,Pe,null,Re),I=fn(A)||Sn(A)?A:B,D=(_guard1627=!qe(I),_guard1627?!qe(I.ease):_guard1627),X=D?I.ease:I,G=D?I.settlingDuration:Un(Tt(Fn.duration,Ae>1?Un(S,ce,ge,Pe,null,Re)\/Ae:S),ce,ge,Pe,null,Re),ie=Un(Tt(Fn.delay,De?0:L),ce,ge,Pe,null,Re),te=Fn.modifier||z,ne=!qe(x),oe=!qe(b),he=yi(b),fe=he||(_guard1628=ne,_guard1628?oe:_guard1628),ye=it?tt:0,ke=it?tt+ie:ie,U=lt(Q+ke,12),ee=lt(Q+ye,12);_guard1630=(_guard1629=!H,_guard1629?ne||he:_guard1629),_guard1630?H=1:_guard1630;let se=it;if(le!==bt.none){let Ge=Ne._head;for(;_guard1631=Ge,_guard1631?Ge._absoluteStartTime<=U:_guard1631;){var _guard1631,_guard1632;if(Ge._isOverridden||(se=Ge),Ge=Ge._nextRep,_guard1632=Ge,_guard1632?Ge._absoluteStartTime>=U:_guard1632)for(;Ge;)Nr(Ge),Ge=Ge._nextRep;}}if(fe){var _guard1633,_guard1634,_guard1635;Zt(he?Un(b[0],ce,ge,Pe,hl,Re):x,Xe),Zt(he?Un(b[1],ce,ge,Pe,ul,Re):b,Ke);let Ge=Rs(ce,pe,J,Ds);_guard1635=Xe.t===Je.NUMBER,_guard1635?se?(_guard1633=se._valueType===Je.UNIT,_guard1633?(Xe.t=Je.UNIT,Xe.u=se._unit):_guard1633):(Zt(Ge,nn),_guard1634=nn.t===Je.UNIT,_guard1634?(Xe.t=Je.UNIT,Xe.u=nn.u):_guard1634):_guard1635;}else oe?Zt(b,Ke):it?tu(it,Ke):Zt((_guard1637=(_guard1636=n,_guard1636?se:_guard1636),_guard1637?se.parent.parent===n:_guard1637)?se._value:Rs(ce,pe,J,Ds),Ke),ne?Zt(x,Xe):it?tu(it,Xe):Zt((_guard1639=(_guard1638=n,_guard1638?se:_guard1638),_guard1639?se.parent.parent===n:_guard1639)?se._value:Rs(ce,pe,J,Ds),Xe);if(_guard1640=Xe.o,_guard1640?Xe.n=Is(se?se._toNumber:Zt(Rs(ce,pe,J,Ds),nn).n,Xe.n,Xe.o):_guard1640,_guard1641=Ke.o,_guard1641?Ke.n=Is(Xe.n,Ke.n,Ke.o):_guard1641,Xe.t!==Ke.t){if(Xe.t===Je.COMPLEX||Ke.t===Je.COMPLEX){let Ge=Xe.t===Je.COMPLEX?Xe:Ke,Pt=Xe.t===Je.COMPLEX?Ke:Xe;Pt.t=Je.COMPLEX,Pt.s=At(Ge.s),Pt.d=Ge.d.map(()=>Pt.n);}else if(Xe.t===Je.UNIT||Ke.t===Je.UNIT){let Ge=Xe.t===Je.UNIT?Xe:Ke,Pt=Xe.t===Je.UNIT?Ke:Xe;Pt.t=Je.UNIT,Pt.u=Ge.u;}else if(Xe.t===Je.COLOR||Ke.t===Je.COLOR){let Ge=Xe.t===Je.COLOR?Xe:Ke,Pt=Xe.t===Je.COLOR?Ke:Xe;Pt.t=Je.COLOR,Pt.d=Ge.d.map(()=>0);}}if(Xe.u!==Ke.u){let Ge=Ke.u?Xe:Ke;Ge=au(ce,Ge,Ke.u?Ke.u:Xe.u,!1);}if(_guard1643=(_guard1642=Ke.d,_guard1642?Xe.d:_guard1642),_guard1643?Ke.d.length!==Xe.d.length:_guard1643){let Ge=Xe.d.length>Ke.d.length?Xe:Ke,Pt=Ge===Xe?Ke:Xe;Pt.d=Ge.d.map((ni,Yi)=>qe(Pt.d[Yi])?0:Pt.d[Yi]),Pt.s=At(Ge.s);}let ue=lt(+G||Ze,12),Y=Ds[pe];Ln(Y)||(Ds[pe]=null);let Z=re?re.set:null;tt=lt(ke+ue,12);let _e=Xe.d,Le=Ke.d,je=Ke.s,Ue={parent:this,id:hx++,property:pe,target:ce,_value:null,_toFunc:ul.func,_fromFunc:hl.func,_ease:Br(X),_fromNumbers:_e?At(_e):Rr,_toNumbers:Le?At(Le):Rr,_strings:je?At(je):Rr,_fromNumber:Xe.n,_toNumber:Ke.n,_numbers:_e?At(_e):Rr,_number:Xe.n,_unit:Ke.u,_modifier:te,_currentTime:0,_startTime:ke,_delay:+ie,_updateDuration:ue,_changeDuration:ue,_absoluteStartTime:U,_absoluteUpdateStartTime:ee,_absoluteEndTime:lt(Q+tt,12),_hasFromValue:ne||he?1:0,_tweenType:J,_setter:Z,_valueType:Ke.t,_composition:le,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_inlineValue:Y,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};_guard1644=le!==bt.none,_guard1644?al(Ue,Ne):_guard1644;let Mt=Ue._valueType;if(Mt===Je.COMPLEX)Ue._value=sl(Ue,1,-1);else if(Mt===Je.UNIT)Ue._value=`${te(Ue._toNumber)}${Ue._unit}`;else if(Mt===Je.COLOR){let Ge=Ke.d;Ue._value=`rgba(${lt(Ge[0],0)},${lt(Ge[1],0)},${lt(Ge[2],0)},${Ge[3]})`;}else Ue._value=te(Ue._toNumber);_guard1645=isNaN(C),_guard1645?C=Ue._startTime:_guard1645,it=Ue,ae++,bn(this,Ue);}_guard1646=isNaN(W)||C<W,_guard1646?W=C:_guard1646,_guard1647=isNaN(O)||tt>O,_guard1647?O=tt:_guard1647,_guard1648=J===ct.TRANSFORM,_guard1648?(Fe=ae-De,ve=ae):_guard1648;}if(!isNaN(Fe)){let Ie=0;at(this,J=>{var _guard1649,_guard1651,_guard1652;_guard1652=(_guard1649=Ie>=Fe,_guard1649?Ie<ve:_guard1649),_guard1652?(J._renderTransforms=1,_guard1651=J._composition===bt.blend,_guard1651?at(ei.animation,re=>{var _guard1650;_guard1650=re.id===J.id,_guard1650?re._renderTransforms=1:_guard1650;}):_guard1651):_guard1652,Ie++;});}}l||console.warn(\"No target found. Make sure the element you're trying to animate is accessible before creating your animation.\"),W?(at(this,q=>{q._startTime-q._delay||(q._delay-=W),q._startTime-=W;}),O-=W):W=0,O||(O=Ze,this.iterationCount=0),this.targets=c,this.id=qe(d)?cf:d,this.duration=O===Ze?Ze:Wi((O+this._loopDelay)*this.iterationCount-this._loopDelay)||Ze,this.onRender=T||y.onRender,this._ease=P,this._delay=W,this.iterationDuration=O,_guard1654=(_guard1653=!this._autoplay,_guard1653?H:_guard1653),_guard1654?this.onRender(this):_guard1654;}stretch(e){let t=this.duration;if(t===Qn(e))return this;let n=e\/t;return at(this,s=>{s._updateDuration=Qn(s._updateDuration*n),s._changeDuration=Qn(s._changeDuration*n),s._currentTime*=n,s._delay*=n,s._startTime*=n,s._absoluteStartTime*=n,s._absoluteUpdateStartTime*=n,s._absoluteEndTime*=n;}),super.stretch(e);}refresh(){var _guard1660;return at(this,e=>{var _guard1655,_guard1656,_guard1657,_guard1658,_guard1659;let t=e._toFunc,n=e._fromFunc;_guard1659=t||n,_guard1659?(n?(Zt(n(),Xe),_guard1656=(_guard1655=Xe.u!==e._unit,_guard1655?e.target[In]:_guard1655),_guard1656?au(e.target,Xe,e._unit,!0):_guard1656,e._fromNumbers=At(Xe.d),e._fromNumber=Xe.n):(_guard1657=t,_guard1657?(Zt(Rs(e.target,e.property,e._tweenType),nn),e._fromNumbers=At(nn.d),e._fromNumber=nn.n):_guard1657),_guard1658=t,_guard1658?(Zt(t(),Ke),e._toNumbers=At(Ke.d),e._strings=At(Ke.s),e._toNumber=Ke.o?Is(e._fromNumber,Ke.n,Ke.o):Ke.n):_guard1658):_guard1659;}),_guard1660=this.duration===Ze,_guard1660?this.restart():_guard1660,this;}revert(){return super.revert(),Ur(this);}then(e){return super.then(e);}},uu=(i,e)=>et.editor?et.editor.addAnimation(i,e):new Us(i,e,null,0,!1).init();\/**\n * Anime.js - timeline - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var fx=(i,e)=>{if(tn(e,\"<\")){let t=e[1]===\"<\",n=i._tail,s=n?n._offset+n._delay:0;return t?s:s+n.duration;}},zr=(i,e)=>{var _guard1661;let t=i.iterationDuration;if(_guard1661=t===Ze,_guard1661?t=0:_guard1661,qe(e))return t;if(ws(+e))return+e;let n=e,s=i?i.labels:null,r=!Ln(s),o=fx(i,n),a=!qe(o),c=Nd.exec(n);if(c){var _guard1662;let l=c[0],u=n.split(l),h=(_guard1662=r,_guard1662?u[0]:_guard1662)?s[u[0]]:t,d=a?o:r?h:t,f=+u[1];return Is(d,f,l[0]);}else return a?o:r?qe(s[n])?t:s[n]:t;};\/**\n * Anime.js - timeline - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/function px(i){return Wi((i.iterationDuration+i._loopDelay)*i.iterationCount-i._loopDelay)||Ze;}function hu(i,e,t,n,s,r){var _guard1663,_guard1664,_guard1665;let a=(_guard1663=ws(i.duration),_guard1663?i.duration<=Ze:_guard1663)?t-Ze:t;_guard1664=e.composition,_guard1664?Nn(e,a,1,1,Rt.AUTO):_guard1664;let c=n?new Us(n,i,e,a,!1,s,r):new Xi(i,e,a);return _guard1665=e.composition,_guard1665?c.init(!0):_guard1665,bn(e,c),at(e,l=>{var _guard1666;let h=l._offset+l._delay+l.duration;_guard1666=h>e.iterationDuration,_guard1666?e.iterationDuration=h:_guard1666;}),e.duration=px(e),e;}var uf=0,pl=class extends Xi{constructor(e={}){super(e,null,0),++uf,this.id=qe(e.id)?uf:e.id,this.duration=0,this.labels={};let t=e.defaults,n=et.defaults;this.defaults=t?el(t,n):n,this.composition=Tt(e.composition,!0),this.onRender=e.onRender||n.onRender;let s=Tt(e.playbackEase,n.playbackEase);this._ease=s?Br(s):null,this.iterationDuration=0;}add(e,t,n){let s=Hi(t),r=Hi(e);if(s||r){var _guard1671;if(this._hasChildren=!0,s){var _guard1667,_guard1668,_guard1669;let o=t,a=(_guard1667=et.editor,_guard1667?et.editor.addTimelineChild:_guard1667),c=(_guard1669=(_guard1668=n,_guard1668?n.type===\"Stagger\":_guard1668),_guard1669?et.editor:_guard1669),l=fn(n)?n:null;if(l||c){let u=ll(e),h=this.duration,d=this.iterationDuration,f=o.id,g=0,_=u.length,m=a?a(e,o,this.id,n,_):null,p=l||et.editor.resolveStagger(n.defaultValue);u.forEach(E=>{let T={...(m||o)};this.duration=h,this.iterationDuration=d,qe(f)||(T.id=f+\"-\"+g);let y=zr(this,p(E,g,u,null,this));hu(T,this,y,E,g,u),g++;});}else{var _guard1670;let u=a?a(e,o,this.id,n):o,h=(_guard1670=n,_guard1670?n.type:_guard1670)?n.defaultValue:n;hu(u,this,zr(this,h),e);}}else hu(e,this,zr(this,t));return _guard1671=this.composition,_guard1671?this.init(!0):_guard1671,this;}}sync(e,t){var _guard1672,_guard1673,_guard1674,_guard1675,_guard1676,_guard1677,_guard1678;if(qe(e)||(_guard1672=e,_guard1672?qe(e.pause):_guard1672))return this;e.pause();let n=+(e.effect?e.effect.getTiming().duration:e.duration);_guard1674=(_guard1673=!qe(e),_guard1673?!qe(e.persist):_guard1673),_guard1674?e.persist=!0:_guard1674;let s=et.editor,r=(_guard1675=s,_guard1675?s.addTimelineChild:_guard1675);_guard1677=(_guard1676=s,_guard1676?s.addTimelineSync:_guard1676),_guard1677?(t=s.addTimelineSync(e,t,this.id),s.addTimelineChild=null):_guard1677;let o=this.add(e,{currentTime:[0,n],duration:n,delay:0,ease:\"linear\",playbackEase:\"linear\"},t);return _guard1678=s,_guard1678?s.addTimelineChild=r:_guard1678,o;}set(e,t,n){return qe(t)?this:(t.duration=Ze,t.composition=bt.replace,this.add(e,t,n));}call(e,t){var _guard1679,_guard1680,_guard1681;return qe(e)||(_guard1679=e,_guard1679?!fn(e):_guard1679)?this:(_guard1681=(_guard1680=et.editor,_guard1680?et.editor.addTimelineCall:_guard1680),_guard1681?t=et.editor.addTimelineCall(e,t,this.id):_guard1681,this.add({duration:0,delay:0,onComplete:()=>e(this)},t));}label(e,t){var _guard1682,_guard1683,_guard1684;return qe(e)||(_guard1682=e,_guard1682?!Sn(e):_guard1682)?this:(_guard1684=(_guard1683=et.editor,_guard1683?et.editor.addTimelineLabel:_guard1683),_guard1684?t=et.editor.addTimelineLabel(e,t,this.id):_guard1684,this.labels[e]=zr(this,t),this);}remove(e,t){return su(ll(e),this,t),this;}stretch(e){let t=this.duration;if(t===Qn(e))return this;let n=e\/t,s=this.labels;at(this,r=>r.stretch(r.duration*n));for(let r in s)s[r]*=n;return super.stretch(e);}refresh(){return at(this,e=>{var _guard1685;_guard1685=e.refresh,_guard1685?e.refresh():_guard1685;}),this;}revert(){return super.revert(),at(this,e=>e.revert,!0),Ur(this);}then(e){return super.then(e);}},ml=i=>et.editor?et.editor.addTimeline(i):new pl(i).init();\/**\n * Anime.js - ESM\n * @version v4.5.0\n * @license MIT\n * @copyright 2026 - Julian Garnier\n *\/var Vr=()=>{};var du={};function fu(i){let e;return()=>{var _guard1686;return _guard1686=e===void 0,_guard1686?e=i():_guard1686,e;};}var pu=i=>i;var Ns=i=>i*1e3,kr=i=>i\/1e3;var mu=i=>{var _guard1687;return _guard1687=Array.isArray(i),_guard1687?typeof i[0]==\"number\":_guard1687;};var Fs={delta:0,timestamp:0,isProcessing:!1};var gl;function mx(){gl=void 0;}var gu={now:()=>{var _guard1688;return _guard1688=gl===void 0,_guard1688?gu.set(Fs.isProcessing||du.useManualTiming?Fs.timestamp:performance.now()):_guard1688,gl;},set:i=>{gl=i,queueMicrotask(mx);}};var hf=(i,e,t=10)=>{let n=\"\",s=Math.max(Math.round(e\/t),2);for(let r=0;r<s;r++)n+=Math.round(i(r\/(s-1))*1e4)\/1e4+\", \";return`linear(${n.substring(0,n.length-2)})`;};var gx=i=>i!==null;function df(i,{repeat:e,repeatType:t=\"loop\"},n,s=1){var _guard1689,_guard1690;let r=i.filter(gx),a=s<0||(_guard1690=(_guard1689=e,_guard1689?t!==\"loop\":_guard1689),_guard1690?e%2===1:_guard1690)?0:r.length-1;return!a||n===void 0?r[a]:n;}function _x(i,e){return{kind:i,animation:e,timestamp:gu.now(),frameTimestamp:Fs.timestamp,frameIsProcessing:Fs.isProcessing};}function ff(i,e,t){let n=globalThis.__MOTION_INSPECT__;if(n)try{n({..._x(\"animation-start\",i),options:t?{...e,...t}:e});}catch{}}var _l=class{constructor(){this.isResolved=!1;}get finished(){return this._finished||(this._finished=this.isResolved?Promise.resolve():new Promise(e=>{this._resolve=e;})),this._finished;}updateFinished(){this._finished=this._resolve=void 0,this.isResolved=!1;}notifyFinished(){this.isResolved=!0,this._resolve?.();}then(e,t){return this.finished.then(e,t);}};function _u(i){for(let e=1;e<i.length;e++)i[e]??(i[e]=i[e-1]);}var xl=i=>i.startsWith(\"--\");function pf(i,e,t){xl(e)?i.style.setProperty(e,t):i.style[e]=t;}var mf={};function yl(i,e){let t=fu(i);return()=>mf[e]??t();}var gf=yl(()=>window.ScrollTimeline!==void 0,\"scrollTimeline\");var vl=yl(()=>{try{document.createElement(\"div\").animate({opacity:0},{easing:\"linear(0, 1)\"});}catch{return!1;}return!0;},\"linearEasing\");var qi=([i,e,t,n])=>`cubic-bezier(${i}, ${e}, ${t}, ${n})`;var xu={linear:\"linear\",ease:\"ease\",easeIn:\"ease-in\",easeOut:\"ease-out\",easeInOut:\"ease-in-out\",circIn:qi([0,.65,.55,1]),circOut:qi([.55,0,1,.45]),backIn:qi([.31,.01,.66,-.59]),backOut:qi([.33,1.53,.69,.99])};function yu(i,e){if(i)return typeof i==\"function\"?vl()?hf(i,e):\"ease-out\":mu(i)?qi(i):Array.isArray(i)?i.map(t=>yu(t,e)||xu.easeOut):xu[i];}function _f(i,e,t,{delay:n=0,duration:s=300,repeat:r=0,repeatType:o=\"loop\",ease:a=\"easeOut\",times:c}={},l=void 0){var _guard1691,_guard1692,_guard1693;let u={[e]:t};_guard1691=c,_guard1691?u.offset=c:_guard1691;let h=yu(a,s);_guard1692=Array.isArray(h),_guard1692?u.easing=h:_guard1692;let d={delay:n,duration:s,easing:Array.isArray(h)?\"linear\":h,fill:\"both\",iterations:r+1,direction:o===\"reverse\"?\"alternate\":\"normal\"};return _guard1693=l,_guard1693?d.pseudoElement=l:_guard1693,i.animate(u,d);}function xf(i){var _guard1694;return _guard1694=typeof i==\"function\",_guard1694?\"applyToOptions\"in i:_guard1694;}function yf({type:i,...e}){var _guard1695;return(_guard1695=xf(i),_guard1695?vl():_guard1695)?i.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease=\"easeOut\"),e);}var Hr=class extends _l{constructor(e){var _guard1696;if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:s,pseudoElement:r,allowFlatten:o=!1,finalKeyframe:a,onComplete:c}=e;this.isPseudoElement=!!r,this.allowFlatten=o,this.options=e,Vr(typeof e.type!=\"string\",`Mini animate() doesn't support \"type\" as a string.`,\"mini-spring\");let l=yf(e);this.animation=_f(t,n,s,l,r),_guard1696=l.autoplay===!1,_guard1696?this.animation.pause():_guard1696,this.animation.onfinish=()=>{if(this.finishedTime=this.time,!r){var _guard1697;let u=df(s,this.options,a,this.speed);_guard1697=this.updateMotionValue,_guard1697?this.updateMotionValue(u):_guard1697,pf(t,n,u),this.animation.cancel();}c?.(),this.notifyFinished();},ff(this,e,l);}play(){var _guard1698;this.isStopped||(this.manualStartTime=null,this.animation.play(),_guard1698=this.state===\"finished\",_guard1698?this.updateFinished():_guard1698);}pause(){this.animation.pause();}complete(){this.animation.finish?.();}cancel(){try{this.animation.cancel();}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e===\"idle\"||e===\"finished\"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel());}commitStyles(){var _guard1699,_guard1700;let e=this.options?.element;_guard1700=(_guard1699=!this.isPseudoElement,_guard1699?e?.isConnected:_guard1699),_guard1700?this.animation.commitStyles?.():_guard1700;}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return kr(Number(e));}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+kr(e);}get time(){return kr(Number(this.animation.currentTime)||0);}set time(e){var _guard1701;let t=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Ns(e),_guard1701=t,_guard1701?this.animation.pause():_guard1701;}get speed(){return this.animation.playbackRate;}set speed(e){var _guard1702;_guard1702=e<0,_guard1702?this.finishedTime=null:_guard1702,this.animation.playbackRate=e;}get state(){return this.finishedTime!==null?\"finished\":this.animation.playState;}get startTime(){return this.manualStartTime??Number(this.animation.startTime);}set startTime(e){this.manualStartTime=this.animation.startTime=e;}attachTimeline({timeline:e,onAttach:t,observe:n}){var _guard1703,_guard1704;return _guard1703=this.allowFlatten,_guard1703?this.animation.effect?.updateTiming({easing:\"linear\"}):_guard1703,this.animation.onfinish=null,(_guard1704=e,_guard1704?gf():_guard1704)?(this.animation.timeline=e,t?.(this.animation),pu):n(this);}};var Ml=class{constructor(e){this.stop=()=>this.runAll(\"stop\"),this.animations=e.filter(Boolean);}get finished(){return Promise.all(this.animations.map(e=>e.finished));}getAll(e){return this.animations[0][e];}setAll(e,t){for(let n=0;n<this.animations.length;n++)this.animations[n][e]=t;}attachTimeline(e){let t=this.animations.map(n=>n.attachTimeline(e));return()=>{t.forEach((n,s)=>{var _guard1705;_guard1705=n,_guard1705?n():_guard1705,this.animations[s].stop();});};}get time(){return this.getAll(\"time\");}set time(e){this.setAll(\"time\",e);}get speed(){return this.getAll(\"speed\");}set speed(e){this.setAll(\"speed\",e);}get state(){return this.getAll(\"state\");}get startTime(){return this.getAll(\"startTime\");}get duration(){return vf(this.animations,\"duration\");}get iterationDuration(){return vf(this.animations,\"iterationDuration\");}runAll(e){this.animations.forEach(t=>t[e]());}play(){this.runAll(\"play\");}pause(){this.runAll(\"pause\");}cancel(){this.runAll(\"cancel\");}complete(){this.runAll(\"complete\");}};function vf(i,e){let t=0;for(let n=0;n<i.length;n++){var _guard1706,_guard1707;let s=i[n][e];_guard1707=(_guard1706=s!==null,_guard1706?s>t:_guard1706),_guard1707?t=s:_guard1707;}return t;}var Gr=class extends Ml{then(e,t){return this.finished.finally(e).then(()=>{});}};var Mf=new WeakMap(),vu=(i,e=\"\")=>`${i}:${e}`;function Mu(i){let e=Mf.get(i);return e||(e=new Map(),Mf.set(i,e)),e;}function Sf(i,e){var _guard1708;if(_guard1708=i?.inherit,_guard1708?e:_guard1708){let{inherit:t,...n}=i;return{...e,...n};}return i;}function Su(i,e){let t=i?.[e]??i?.default??i;return t!==i?Sf(t,i):t;}var bf=[\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\"];var Tf=new Set([\"borderWidth\",\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\",\"borderRadius\",...bf,\"width\",\"maxWidth\",\"height\",\"maxHeight\",\"top\",\"right\",\"bottom\",\"left\",\"inset\",\"insetBlock\",\"insetBlockStart\",\"insetBlockEnd\",\"insetInline\",\"insetInlineStart\",\"insetInlineEnd\",\"padding\",\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\",\"paddingBlock\",\"paddingBlockStart\",\"paddingBlockEnd\",\"paddingInline\",\"paddingInlineStart\",\"paddingInlineEnd\",\"margin\",\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\",\"marginBlock\",\"marginBlockStart\",\"marginBlockEnd\",\"marginInline\",\"marginInlineStart\",\"marginInlineEnd\",\"fontSize\",\"backgroundPositionX\",\"backgroundPositionY\"]);function bu(i,e){for(let t=0;t<i.length;t++){var _guard1709,_guard1710;_guard1710=(_guard1709=typeof i[t]==\"number\",_guard1709?Tf.has(e):_guard1709),_guard1710?i[t]=i[t]+\"px\":_guard1710;}}function Tu(i,e,t){if(i==null)return[];if(i instanceof EventTarget)return[i];if(typeof i==\"string\"){var _guard1711;let n=document;_guard1711=e,_guard1711?n=e.current:_guard1711;let s=t?.[i]??n.querySelectorAll(i);return s?Array.from(s):[];}return Array.from(i).filter(n=>n!=null);}function Sl(i,e){let t=window.getComputedStyle(i);return xl(e)?t.getPropertyValue(e):t[e];}function Ef(i,e,t,n){if(i==null)return[];let s=Tu(i,n),r=s.length;Vr(!!r,\"No valid elements provided.\",\"no-valid-elements\");let o=[];for(let c=0;c<r;c++){var _guard1712;let l=s[c],u={...t};_guard1712=typeof u.delay==\"function\",_guard1712?u.delay=u.delay(c,r):_guard1712;for(let h in e){var _guard1713,_guard1714,_guard1715,_guard1716;let d=e[h];Array.isArray(d)||(d=[d]);let f={...Su(u,h)};_guard1713=f.duration,_guard1713?f.duration=Ns(f.duration):_guard1713,_guard1714=f.delay,_guard1714?f.delay=Ns(f.delay):_guard1714;let g=Mu(l),_=vu(h,f.pseudoElement||\"\"),m=g.get(_);_guard1715=m,_guard1715?m.stop():_guard1715,o.push({map:g,key:_,unresolvedKeyframes:d,options:{...f,element:l,name:h,allowFlatten:(_guard1716=!u.type,_guard1716?!u.ease:_guard1716)}});}}for(let c=0;c<o.length;c++){var _guard1717,_guard1718,_guard1719,_guard1720;let{unresolvedKeyframes:l,options:u}=o[c],{element:h,name:d,pseudoElement:f}=u;_guard1718=(_guard1717=!f,_guard1717?l[0]===null:_guard1717),_guard1718?l[0]=Sl(h,d):_guard1718,_u(l),bu(l,d),_guard1720=(_guard1719=!f,_guard1719?l.length<2:_guard1719),_guard1720?l.unshift(Sl(h,d)):_guard1720,u.keyframes=l;}let a=[];for(let c=0;c<o.length;c++){let{map:l,key:u,options:h}=o[c],d=new Hr(h);l.set(u,d),d.finished.finally(()=>l.delete(u)),a.push(d);}return a;}var xx=i=>{function e(t,n,s){return new Gr(Ef(t,n,s,i));}return e;},Eu=xx();function Af(){let i=document.getElementById(\"bantv-home-v3\");if(!i||i.dataset.initialized)return;i.dataset.initialized=\"true\";let e=O=>i.querySelector(O),t=O=>Array.from(i.querySelectorAll(O)),n=matchMedia(\"(prefers-reduced-motion: reduce)\"),s=!1;try{s=localStorage.getItem(\"bantv-home-motion\")===\"paused\";}catch{}let r=()=>n.matches||s,o=e(\".bh-motion\"),a=e(\".bh-intro\"),c=e(\".bh-intro-skip\"),l=new Set(),u=new Set(),h=!1,d=null,f=0,g=()=>{},_=()=>{},m=()=>{},p=[.22,.7,.2,1];function E(O,W,ae={}){if(r())return null;try{let H=Eu(O,W,{duration:.65,ease:p,...ae});return u.add(H),H.then(()=>u.delete(H),()=>u.delete(H)),H;}catch{return null;}}function T(){var _guard1721,_guard1722;h||(h=!0,clearTimeout(f),_guard1721=d,_guard1721?d.pause():_guard1721,a.classList.remove(\"is-active\"),a.setAttribute(\"aria-hidden\",\"true\"),c.tabIndex=-1,_guard1722=a.contains(document.activeElement),_guard1722?e(\".bh-hero .bh-btn\").focus({preventScroll:!0}):_guard1722,i.dataset.intro=\"complete\",_());}c.addEventListener(\"click\",T),f=setTimeout(T,2200),document.addEventListener(\"keydown\",O=>{var _guard1723;_guard1723=O.key===\"Escape\",_guard1723?T():_guard1723;});let y=e(\".bh-dialog\"),R=e(\".bh-player\"),w=e(\".bh-video-external\"),P=null,F=!1,M=\"\",S={moon:{title:\"\\u0410 \\u0447\\u0442\\u043E \\u0435\\u0441\\u043B\\u0438 \\u041B\\u0443\\u043D\\u0430 \\u0443\\u043B\\u0435\\u0442\\u0438\\u0442 \\u043E\\u0442 \\u043D\\u0430\\u0441? \\u2014 \\xAB\\u041D\\u0443 \\u0447\\u0438\\u0441\\u0442\\u043E \\u0442\\u0435\\u043E\\u0440\\u0435\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\xBB\",embed:\"https:\/\/vkvideo.ru\/video_ext.php?oid=-220276241\\x26id=456239058\\x26hash=b9d4c77a54a2568d\\x26hd=4\",url:\"https:\/\/vkvideo.ru\/video-220276241_456239058\"},horizons:{title:\"\\xAB\\u0413\\u043E\\u0440\\u0438\\u0437\\u043E\\u043D\\u0442\\u044B \\u043C\\u0438\\u0440\\u0430\\xBB \\u2014 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A 3. \\u0422\\u0430\\u0438\\u043B\\u0430\\u043D\\u0434\",embed:\"https:\/\/vkvideo.ru\/video_ext.php?oid=-220276241\\x26id=456239033\\x26hd=2\",url:\"https:\/\/vkvideo.ru\/video-220276241_456239033\"},engine:{title:\"Engine \\x26 Gear \u2014 Li L9 Ultra. \u0427\u0430\u0441\u0442\u044c 1\",embed:\"https:\/\/vkvideo.ru\/video_ext.php?oid=-220276241\\x26id=456239032\\x26hd=2\",url:\"https:\/\/vkvideo.ru\/video-220276241_456239032\"},radium:{title:\"\\u0424\\u0438\\u043B\\u044C\\u043C \\xAB\\u0420\\u0430\\u0434\\u0438\\u0439 325\\xBB\",embed:\"https:\/\/vk.com\/video_ext.php?oid=-220276241\\x26id=456239023\\x26hd=2\",url:\"https:\/\/vk.com\/video-220276241_456239023\"},spark:{title:\"\\xAB\\u0422\\u0435\\u043D\\u0438 \\u0418\\u0441\\u043A\\u0440\\u044B\\xBB \\u2014 \\u0432\\u0435\\u0440\\u0442\\u0438\\u043A\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0442\\u0440\\u0435\\u0439\\u043B\\u0435\\u0440\",embed:\"https:\/\/vkvideo.ru\/clip_ext.php?oid=-220276241\\x26id=456239063\",url:\"https:\/\/vk.ru\/clip-220276241_456239063?c=1\",portrait:!0}};function L(){var _guard1724,_guard1725;R.replaceChildren(),y.close(),y.style.opacity=\"\",y.style.transform=\"\",document.body.style.overflow=M,F=!1,i.classList.remove(\"bh-video-open\"),_guard1725=(_guard1724=P,_guard1724?P.isConnected:_guard1724),_guard1725?P.focus({preventScroll:!0}):_guard1725,_();}function z(){if(!y.open||F)return;F=!0;let O=E(y,{opacity:[1,0],transform:[\"translateY(0px) scale(1)\",\"translateY(12px) scale(.985)\"]},{duration:.25});O?O.then(L,L):L();}t(\"[data-video]\").forEach(O=>O.addEventListener(\"click\",W=>{let ae=S[O.dataset.video];if(!ae||!y.showModal)return;W.preventDefault(),T(),P=O,F=!1,e(\".bh-dialog-title\").textContent=ae.title,w.href=ae.url,y.classList.toggle(\"bh-dialog-portrait\",!!ae.portrait);let H=document.createElement(\"iframe\"),q=new URL(ae.embed);q.searchParams.set(\"autoplay\",\"1\"),H.title=ae.title,H.src=q.href,H.allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture\",H.allowFullscreen=!0,H.referrerPolicy=\"strict-origin-when-cross-origin\",R.replaceChildren(H),M=document.body.style.overflow,document.body.style.overflow=\"hidden\",i.classList.add(\"bh-video-open\"),y.showModal(),e(\".bh-dialog-close\").focus({preventScroll:!0}),E(y,{opacity:[0,1],transform:[\"translateY(18px) scale(.985)\",\"translateY(0px) scale(1)\"]},{duration:.45}),_();})),e(\".bh-dialog-close\").addEventListener(\"click\",z),y.addEventListener(\"cancel\",O=>{O.preventDefault(),z();}),y.addEventListener(\"click\",O=>{if(O.target===y){var _guard1726;let W=y.getBoundingClientRect();_guard1726=O.clientX<W.left||O.clientX>W.right||O.clientY<W.top||O.clientY>W.bottom,_guard1726?z():_guard1726;}});let $={police:[\"\\u041F\\u043E\\u043B\\u0438\\u0446\\u0438\\u044F\",\"\\u041F\\u0430\\u0442\\u0440\\u0443\\u043B\\u0438, \\u043F\\u043E\\u0440\\u044F\\u0434\\u043E\\u043A \\u0438 \\u0440\\u0435\\u0448\\u0435\\u043D\\u0438\\u044F, \\u043E\\u0442 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0445 \\u0437\\u0430\\u0432\\u0438\\u0441\\u0438\\u0442 \\u0432\\u0435\\u0441\\u044C \\u0441\\u0446\\u0435\\u043D\\u0430\\u0440\\u0438\\u0439.\",\"#8eafff\"],medical:[\"\\u041C\\u0435\\u0434\\u0438\\u043A\\u0438\",\"\\u041F\\u043E\\u043C\\u043E\\u0449\\u044C \\u043D\\u0430 \\u0432\\u044B\\u0437\\u043E\\u0432\\u0430\\u0445 \\u0438 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0430 \\u043A\\u043E\\u043C\\u0430\\u043D\\u0434\\u044B, \\u0433\\u0434\\u0435 \\u0432\\u0430\\u0436\\u043D\\u0430 \\u043A\\u0430\\u0436\\u0434\\u0430\\u044F \\u043C\\u0438\\u043D\\u0443\\u0442\\u0430.\",\"#c8a0de\"],fire:[\"\\u041F\\u043E\\u0436\\u0430\\u0440\\u043D\\u044B\\u0435\",\"\\u0421\\u043F\\u0430\\u0441\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u044B\\u0435 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0438 \\u043A\\u043E\\u043E\\u0440\\u0434\\u0438\\u043D\\u0430\\u0446\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0432 \\u0441\\u043B\\u043E\\u0436\\u043D\\u044B\\u0445 \\u0441\\u0438\\u0442\\u0443\\u0430\\u0446\\u0438\\u044F\\u0445.\",\"#eda393\"],road:[\"\\u0414\\u043E\\u0440\\u043E\\u0436\\u043D\\u0430\\u044F \\u0441\\u043B\\u0443\\u0436\\u0431\\u0430\",\"\\u0411\\u0435\\u0437\\u043E\\u043F\\u0430\\u0441\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u043E\\u0440\\u043E\\u0433, \\u043F\\u043E\\u043C\\u043E\\u0449\\u044C \\u043D\\u0430 \\u0442\\u0440\\u0430\\u0441\\u0441\\u0435 \\u0438 \\u0432\\u0437\\u0430\\u0438\\u043C\\u043E\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0441\\u043E \\u0441\\u043B\\u0443\\u0436\\u0431\\u0430\\u043C\\u0438.\",\"#e7c38a\"]};t(\"[data-service]\").forEach(O=>O.addEventListener(\"click\",()=>{if(O.getAttribute(\"aria-pressed\")===\"true\")return;t(\"[data-service]\").forEach(ge=>ge.setAttribute(\"aria-pressed\",String(ge===O)));let[W,ae,H]=$[O.dataset.service],q=e(\".bh-service-detail\");q.querySelector(\"strong\").textContent=W,q.querySelector(\"span\").textContent=ae,i.dataset.service=O.dataset.service,i.style.setProperty(\"--service-color\",H);let ce={police:\"M40 170H120V65H300V130H360\",medical:\"M40 60H210V170H330V70H365\",fire:\"M40 180H80V40H270V180H365\",road:\"M35 110H145V180H255V55H365\"};t(\".bh-service-route path\").forEach(ge=>ge.setAttribute(\"d\",ce[O.dataset.service])),e(\".bh-map-core\").style.color=H,e(\".bh-map-core\").style.borderColor=H,E(q,{opacity:[.4,1],transform:[\"translateY(5px)\",\"translateY(0px)\"]},{duration:.35});})),t('a[href^=\"#\"]').forEach(O=>O.addEventListener(\"click\",W=>{let ae=O.getAttribute(\"href\"),H=document.getElementById(ae.slice(1));if(H){W.preventDefault(),T(),H.scrollIntoView({behavior:r()?\"instant\":\"smooth\",block:\"start\"});try{history.pushState(null,\"\",ae);}catch{}}}));function Q(){var _guard1727;i.classList.toggle(\"bh-paused\",r()),o.setAttribute(\"aria-pressed\",String(s)),o.querySelector(\"span\").textContent=n.matches?\"\\u0421\\u0438\\u0441\\u0442\\u0435\\u043C\\u043D\\u043E\\u0435 \\u0441\\u043D\\u0438\\u0436\\u0435\\u043D\\u0438\\u0435 \\u0434\\u0432\\u0438\\u0436\\u0435\\u043D\\u0438\\u044F\":s?\"\\u0414\\u0432\\u0438\\u0436\\u0435\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u043E\":\"\\u0414\\u0432\\u0438\\u0436\\u0435\\u043D\\u0438\\u0435 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u043E\",o.disabled=n.matches,_guard1727=r(),_guard1727?(T(),u.forEach(O=>O.complete()),u.clear(),m()):_guard1727,g(),_();}o.hidden=!1,o.addEventListener(\"click\",()=>{s=!s;try{localStorage.setItem(\"bantv-home-motion\",s?\"paused\":\"playing\");}catch{}Q();}),n.addEventListener(\"change\",Q),document.addEventListener(\"visibilitychange\",()=>{var _guard1728;_guard1728=document.hidden,_guard1728?T():_guard1728,_();});try{var _guard1740,_guard1741;let Ie=function(xe){if(Math.abs(xe-Pe)<4e-4)return;Pe=xe,ge.seek(xe*1e3,!0);let le=ce.value;ae.forEach(be=>{let Re=Number(be.dataset.layer)||0,Ve=ve(Fe((le*8-Re)\/1.6));be.style.opacity=String(Ve),be.style.transform=`translateY(${(1-Ve)*29}px)`;}),H.forEach((be,Re)=>{let Ve=ve(Fe((le-.65-Re*.002)\/.22));be.style.opacity=String(Ve);}),q.style.transform=`scaleX(${xe})`,i.dataset.cityProgress=xe.toFixed(2),e(\".bh-city-caption\").textContent=xe>.96?\"\\u0413\\u043E\\u0440\\u043E\\u0434 \\u0441\\u043E\\u0431\\u0440\\u0430\\u043D. \\u0418\\u0441\\u0442\\u043E\\u0440\\u0438\\u044F \\u043D\\u0430\\u0447\\u0438\\u043D\\u0430\\u0435\\u0442\\u0441\\u044F.\":\"\\u041B\\u0438\\u0441\\u0442\\u0430\\u0439\\u0442\\u0435 \\u2014 \\u043A\\u0432\\u0430\\u0440\\u0442\\u0430\\u043B\\u044B \\u0441\\u043E\\u0431\\u0438\\u0440\\u0430\\u044E\\u0442\\u0441\\u044F.\";},pe=function(xe,le,be){let Re=uu(xe,{...le,autoplay:!1}),Ve={animation:Re,visible:!1,target:be};return re.push(Ve),l.add(Re),Re;},O=e(\".bh-world\"),W=e(\".bh-world-scene\"),ae=t(\".bh-world-scene .building-piece\"),H=t(\".bh-world-scene .city-object:not(.district)\"),q=e(\".bh-city-progress i\"),ce={value:0},ge=ml({autoplay:!1}).add(ce,{value:[0,1],duration:1e3,ease:\"linear\"},0),Pe=-1,Fe=xe=>Math.max(0,Math.min(1,xe)),ve=xe=>xe*xe*(3-2*xe),J=0;g=()=>{J||(J=requestAnimationFrame(()=>{var _guard1729;J=0;let xe=O.getBoundingClientRect(),le=innerHeight,be;if(r())be=1;else if(innerWidth<768){let Ve=W.getBoundingClientRect();be=Fe((le*.94-Ve.top)\/(Math.min(Ve.height,le*.65)+le*.12));}else be=Fe((le*.32-xe.top)\/Math.max(1,xe.height-le*.85));_guard1729=!i.classList.contains(\"bh-immersive\")||i.classList.contains(\"bh-vector\"),_guard1729?Ie(be):_guard1729;let Re=i.getBoundingClientRect();e(\".bh-progress-line\").style.transform=`scaleX(${Fe(-Re.top\/Math.max(1,Re.height-le))})`;}));},addEventListener(\"scroll\",g,{passive:!0}),addEventListener(\"resize\",g,{passive:!0});let re=[],me={v:0};pe(me,{v:[0,1],duration:18e3,loop:!0,ease:\"linear\",onUpdate:()=>{e(\".bh-orbit\").style.transform=`translateY(-50%) rotateX(62deg) rotateZ(${-20+me.v*360}deg)`,e(\".bh-orbit-two\").style.transform=`translateY(-50%) rotateX(54deg) rotateZ(${35-me.v*360}deg)`;}},e(\".bh-cinema\"));let Me={v:0},Ne=t(\".bh-world-scene [data-ambient]\");pe(Me,{v:[0,1],duration:18e3,ease:\"linear\",loop:!0,onUpdate:()=>{Ne.forEach((xe,le)=>{var _guard1730;let be=Me.v*Math.PI*2,Re=xe.dataset.ambient;if(Re===\"fan\")xe.style.transform=`rotate(${Me.v*1440}deg)`;else if(Re===\"person\")xe.style.transform=`translate(${Math.sin(be+le)*2}px,${Math.sin(be+le)}px)`;else if(Re===\"leaves\")xe.style.transform=`rotate(${Math.sin(be+le)*.55}deg)`;else if(Re===\"car\"||Re===\"bus\"){let Ve=(1-Math.cos(be))*(Re===\"car\"?18:-23);xe.style.transform=`translate(${Ve}px,${Ve*.5}px)`;}else _guard1730=Re===\"fountain\",_guard1730?xe.style.transform=`scaleY(${.96+Math.sin(be*3)*.04})`:_guard1730;});}},W);let it=e(\".bh-flying-file\"),C=e(\".bh-transfer-bar i\"),tt=e(\".bh-phone-check\"),De={v:0},Ae=pe(De,{v:[0,1],duration:7e3,loop:!0,ease:\"linear\",onUpdate:()=>{let xe=De.v,le=Fe((xe-.16)\/.44),be=ve(le),Re=xe<.16?0:xe<.62?1:xe<.8?2:3;e(\".bh-transfer\").dataset.phase=String(Re),e(\".bh-transfer-status\").textContent=[\"\\u0423\\u0441\\u0442\\u0440\\u043E\\u0439\\u0441\\u0442\\u0432\\u0430 \\u043F\\u043E\\u0434\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u044B\",\"\\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0451\\u043C \\u043D\\u0430\\u043F\\u0440\\u044F\\u043C\\u0443\\u044E\\u2026\",\"\\u041F\\u0440\\u043E\\u0432\\u0435\\u0440\\u044F\\u0435\\u043C \\u0446\\u0435\\u043B\\u043E\\u0441\\u0442\\u043D\\u043E\\u0441\\u0442\\u044C\\u2026\",\"\\u0412\\u0441\\u0451 \\u043D\\u0430 \\u0432\\u0430\\u0448\\u0435\\u043C \\u0442\\u0435\\u043B\\u0435\\u0444\\u043E\\u043D\\u0435.\"][Re],e(\".bh-phone-status\").textContent=[\"\\u0421\\u043E\\u0435\\u0434\\u0438\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0443\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u043B\\u0435\\u043D\\u043E\",\"\\u041F\\u043E\\u043B\\u0443\\u0447\\u0430\\u0435\\u043C \\u0444\\u0430\\u0439\\u043B\\u044B\\u2026\",\"\\u041F\\u0440\\u043E\\u0432\\u0435\\u0440\\u044F\\u0435\\u043C SHA-256\",\"\\u0424\\u0430\\u0439\\u043B\\u044B \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u044B\"][Re],t(\".bh-transfer-steps span\").forEach((Ve,b)=>Ve.classList.toggle(\"is-current\",b===Re)),it.style.opacity=String(Math.sin(le*Math.PI)*.94),it.style.transform=`translate(${be*95}px,${be*100-32*Math.sin(le*Math.PI)}px) rotate(${be*12}deg) scale(${1-be*.25})`,C.style.transform=`scaleX(${le})`,tt.style.opacity=xe>=.8?\"1\":\".18\";}},e(\".bh-transfer\")),Se=e(\".bh-transfer-replay\");if(Se.hidden=!1,Se.addEventListener(\"click\",()=>{r()||(Ae.restart(),_());}),pe(e(\".bh-map-ring\"),{scale:[.85,1.13],opacity:[.4,.85],alternate:!0,duration:2600,loop:!0,ease:\"inOutSine\"},e(\".bh-dispatch\")),pe(e(\".bh-cube-object\"),{translateY:[0,-7],alternate:!0,duration:3e3,loop:!0,ease:\"inOutSine\"},e(\".bh-learning\")),t(\".bh-embers i\").forEach((xe,le)=>pe(xe,{translateY:[0,-85-le*8],translateX:[0,(le%2?1:-1)*12],opacity:[0,.6,0],duration:4300+le*500,delay:le*500,loop:!0,ease:\"linear\"},e(\".bh-spark-scene\"))),_=()=>{var _guard1731,_guard1732,_guard1733;let xe=(_guard1733=(_guard1732=(_guard1731=!r(),_guard1731?!document.hidden:_guard1731),_guard1732?h:_guard1732),_guard1733?!y.open:_guard1733);re.forEach(le=>{var _guard1734,_guard1735,_guard1736,_guard1737;(_guard1737=(_guard1734=xe,_guard1734?le.visible:_guard1734),_guard1737?!(_guard1736=i.classList.contains(\"bh-immersive\"),_guard1736?(_guard1735=le.target===W,_guard1735?!i.classList.contains(\"bh-vector\"):_guard1735)||le.target===e(\".bh-cinema\")||le.target===e(\".bh-learning\"):_guard1736):_guard1737)?le.animation.play():le.animation.pause();}),i.dataset.motion=xe?\"playing\":r()?\"reduced\":\"paused\";},\"IntersectionObserver\"in window){let b=function(A){A.classList.remove(\"bh-reveal-pending\"),be.delete(A),A.dataset.revealState=\"shown\";},x=function(A,I=!1){if(!be.has(A)||Re.has(A))return;if(B.unobserve(A),r()||I){b(A);return;}Re.add(A),A.dataset.revealState=\"animating\";let D=E(A,{opacity:[0,1],transform:[\"translate3d(0,18px,0)\",\"translate3d(0,0,0)\"]},{duration:.95});D?D.then(()=>b(A),()=>b(A)):b(A);},xe=new IntersectionObserver(A=>{A.forEach(I=>re.filter(D=>D.target===I.target).forEach(D=>{D.visible=I.isIntersecting;})),_();},{threshold:0,rootMargin:\"40px\"});new Set(re.map(A=>A.target)).forEach(A=>xe.observe(A));let le=\"[data-reveal],.bh-project-copy,.bh-world-scene,.bh-transfer,.bh-project-jump\",be=new Set(),Re=new WeakSet(),Ve=t(le).filter(A=>!A.parentElement.closest(le)),B=new IntersectionObserver(A=>{A.forEach(I=>{var _guard1738;_guard1738=I.isIntersecting,_guard1738?x(I.target):_guard1738;});},{threshold:0,rootMargin:\"0px 0px 90px 0px\"});Ve.forEach(A=>{if(r()||A.getBoundingClientRect().top<innerHeight+40){A.dataset.revealState=\"shown\";return;}A.classList.add(\"bh-reveal-pending\"),A.dataset.revealState=\"pending\",be.add(A),B.observe(A);}),m=()=>{[...be].forEach(A=>x(A,!0));},i.addEventListener(\"focusin\",A=>{var _guard1739;let I=A.target.closest(\".bh-reveal-pending\");_guard1739=I,_guard1739?x(I,!0):_guard1739;}),i.dataset.revealEngine=\"prepared-motion-v4.0\";}else re.forEach(xe=>xe.visible=!0);(_guard1741=(_guard1740=!r(),_guard1740?!document.hidden:_guard1740),_guard1741?!location.hash:_guard1741)?(a.classList.add(\"is-active\"),a.setAttribute(\"aria-hidden\",\"false\"),c.tabIndex=0,i.dataset.intro=\"playing\",d=ml({onComplete:T}).add(e(\".bh-intro-frame\"),{scale:[.3,1.22],rotateX:[70,58],rotateZ:[-70,15],opacity:[0,1],duration:1100,ease:\"outCubic\"},0).add(e(\".bh-intro-word\"),{translateY:[15,0],scale:[.94,1],opacity:[0,1],duration:780,ease:\"outCubic\"},240).add(e(\".bh-intro-label\"),{opacity:[0,1],duration:300},400).add(a,{opacity:[1,0],duration:550,ease:\"inOutCubic\"},1050)):T(),i.dataset.motionEngine=\"Anime.js 4.5.0 + Motion 14.3.0\",Q(),g(),setTimeout(()=>{try{Sd(i,r);}catch{i.dataset.journey=\"fallback\";}},0);}catch(O){var _guard1742;T(),t(\".bh-reveal-pending\").forEach(W=>W.classList.remove(\"bh-reveal-pending\")),t(\".bh-world-scene .building-piece,.bh-world-scene .city-object\").forEach(W=>{W.style.opacity=\"1\",W.style.transform=\"\";}),i.dataset.motion=\"fallback\",_guard1742=console,_guard1742?console.warn(\"BanTV: motion fallback\",O):_guard1742;}}document.readyState===\"loading\"?document.addEventListener(\"DOMContentLoaded\",Af,{once:!0}):Af();})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>01 \/ \u041d\u0430\u0447\u0430\u043b\u043e \u041b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u2014 \u043c\u0438\u0440 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f BanTVIDEAS BECOME REAL \u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0443 \u2197 BanTV Production \u00b7 \u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0421\u043d\u0438\u043c\u0430\u0435\u043c. \u0421\u043e\u0437\u0434\u0430\u0451\u043c. \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c. \u0418\u0434\u0435\u0438 \u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u0441\u0432\u043e\u0439 \u043c\u0438\u0440. \u041e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0434\u043e \u0446\u0435\u043b\u043e\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439. \u041c\u044b \u2014 BanTV Production. \u0414\u0435\u043b\u0430\u0435\u043c \u0448\u043e\u0443, \u0444\u0438\u043b\u044c\u043c\u044b, \u0438\u0433\u0440\u044b \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435. \u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435 \u2198\u041d\u0430\u0448\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 \u2197 \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-45","page","type-page","status-publish","hentry"],"featured_media_urls":[],"_links":{"self":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bantv.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":213,"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages\/45\/revisions"}],"predecessor-version":[{"id":1799,"href":"https:\/\/bantv.ru\/index.php?rest_route=\/wp\/v2\/pages\/45\/revisions\/1799"}],"wp:attachment":[{"href":"https:\/\/bantv.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}