diff --git a/static/user/assets/AboutView-Bka3SLpW.js b/static/user/assets/AboutView-B8sW-Yaj.js similarity index 72% rename from static/user/assets/AboutView-Bka3SLpW.js rename to static/user/assets/AboutView-B8sW-Yaj.js index c1f323d..ca5a431 100644 --- a/static/user/assets/AboutView-Bka3SLpW.js +++ b/static/user/assets/AboutView-B8sW-Yaj.js @@ -1 +1 @@ -import{_ as o,c as s,a as t,o as a}from"./index-CvMfxbnk.js";const n={},c={class:"about"};function r(_,e){return a(),s("div",c,e[0]||(e[0]=[t("h1",null,"This is an about page",-1)]))}const l=o(n,[["render",r]]);export{l as default}; +import{_ as o,c as s,a as t,o as a}from"./index-C99bTfI6.js";const n={},c={class:"about"};function r(_,e){return a(),s("div",c,e[0]||(e[0]=[t("h1",null,"This is an about page",-1)]))}const l=o(n,[["render",r]]);export{l as default}; diff --git a/static/user/assets/index-CvMfxbnk.js b/static/user/assets/index-C99bTfI6.js similarity index 99% rename from static/user/assets/index-CvMfxbnk.js rename to static/user/assets/index-C99bTfI6.js index 4e01c82..43e4ed4 100644 --- a/static/user/assets/index-CvMfxbnk.js +++ b/static/user/assets/index-C99bTfI6.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-Bka3SLpW.js","assets/AboutView-CSIvawM9.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-B8sW-Yaj.js","assets/AboutView-CSIvawM9.css"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/** * @vue/shared v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -23,4 +23,4 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-Bka3S * vue-router v4.5.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */const Rt=typeof document<"u";function ko(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function wc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ko(e.default)}const k=Object.assign;function qn(e,t){const n={};for(const s in t){const r=t[s];n[s]=Ae(r)?r.map(e):e(r)}return n}const Gt=()=>{},Ae=Array.isArray,Ko=/#/g,Ec=/&/g,Rc=/\//g,Pc=/=/g,Cc=/\?/g,Wo=/\+/g,Tc=/%5B/g,Ac=/%5D/g,qo=/%5E/g,Oc=/%60/g,Go=/%7B/g,Ic=/%7C/g,zo=/%7D/g,Mc=/%20/g;function Ms(e){return encodeURI(""+e).replace(Ic,"|").replace(Tc,"[").replace(Ac,"]")}function $c(e){return Ms(e).replace(Go,"{").replace(zo,"}").replace(qo,"^")}function us(e){return Ms(e).replace(Wo,"%2B").replace(Mc,"+").replace(Ko,"%23").replace(Ec,"%26").replace(Oc,"`").replace(Go,"{").replace(zo,"}").replace(qo,"^")}function Fc(e){return us(e).replace(Pc,"%3D")}function Lc(e){return Ms(e).replace(Ko,"%23").replace(Cc,"%3F")}function Nc(e){return e==null?"":Lc(e).replace(Rc,"%2F")}function en(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const jc=/\/$/,Hc=e=>e.replace(jc,"");function Gn(e,t,n="/"){let s,r={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return l=0&&(c=-1),c>-1&&(s=t.slice(0,c),o=t.slice(c+1,l>-1?l:t.length),r=e(o)),l>-1&&(s=s||t.slice(0,l),i=t.slice(l,t.length)),s=Bc(s??t,n),{fullPath:s+(o&&"?")+o+i,path:s,query:r,hash:en(i)}}function Dc(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function gr(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Uc(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&Mt(t.matched[s],n.matched[r])&&Jo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Mt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Jo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Vc(e[n],t[n]))return!1;return!0}function Vc(e,t){return Ae(e)?mr(e,t):Ae(t)?mr(t,e):e===t}function mr(e,t){return Ae(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function Bc(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const Ze={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var tn;(function(e){e.pop="pop",e.push="push"})(tn||(tn={}));var zt;(function(e){e.back="back",e.forward="forward",e.unknown=""})(zt||(zt={}));function kc(e){if(!e)if(Rt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Hc(e)}const Kc=/^[^#]+#/;function Wc(e,t){return e.replace(Kc,"#")+t}function qc(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const $n=()=>({left:window.scrollX,top:window.scrollY});function Gc(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=qc(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function _r(e,t){return(history.state?history.state.position-t:-1)+e}const fs=new Map;function zc(e,t){fs.set(e,t)}function Jc(e){const t=fs.get(e);return fs.delete(e),t}let Qc=()=>location.protocol+"//"+location.host;function Qo(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let l=r.includes(e.slice(o))?e.slice(o).length:1,c=r.slice(l);return c[0]!=="/"&&(c="/"+c),gr(c,"")}return gr(n,e)+s+r}function Yc(e,t,n,s){let r=[],o=[],i=null;const l=({state:g})=>{const m=Qo(e,location),A=n.value,I=t.value;let M=0;if(g){if(n.value=m,t.value=g,i&&i===A){i=null;return}M=I?g.position-I.position:0}else s(m);r.forEach(P=>{P(n.value,A,{delta:M,type:tn.pop,direction:M?M>0?zt.forward:zt.back:zt.unknown})})};function c(){i=n.value}function d(g){r.push(g);const m=()=>{const A=r.indexOf(g);A>-1&&r.splice(A,1)};return o.push(m),m}function f(){const{history:g}=window;g.state&&g.replaceState(k({},g.state,{scroll:$n()}),"")}function h(){for(const g of o)g();o=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:c,listen:d,destroy:h}}function vr(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?$n():null}}function Xc(e){const{history:t,location:n}=window,s={value:Qo(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,d,f){const h=e.indexOf("#"),g=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:Qc()+e+c;try{t[f?"replaceState":"pushState"](d,"",g),r.value=d}catch(m){console.error(m),n[f?"replace":"assign"](g)}}function i(c,d){const f=k({},t.state,vr(r.value.back,c,r.value.forward,!0),d,{position:r.value.position});o(c,f,!0),s.value=c}function l(c,d){const f=k({},r.value,t.state,{forward:c,scroll:$n()});o(f.current,f,!0);const h=k({},vr(s.value,c,null),{position:f.position+1},d);o(c,h,!1),s.value=c}return{location:s,state:r,push:l,replace:i}}function Zc(e){e=kc(e);const t=Xc(e),n=Yc(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=k({location:"",base:e,go:s,createHref:Wc.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function eu(e){return typeof e=="string"||e&&typeof e=="object"}function Yo(e){return typeof e=="string"||typeof e=="symbol"}const Xo=Symbol("");var yr;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(yr||(yr={}));function $t(e,t){return k(new Error,{type:e,[Xo]:!0},t)}function Ke(e,t){return e instanceof Error&&Xo in e&&(t==null||!!(e.type&t))}const br="[^/]+?",tu={sensitive:!1,strict:!1,start:!0,end:!0},nu=/[.+*?^${}()[\]/\\]/g;function su(e,t){const n=k({},tu,t),s=[];let r=n.start?"^":"";const o=[];for(const d of e){const f=d.length?[]:[90];n.strict&&!d.length&&(r+="/");for(let h=0;ht.length?t.length===1&&t[0]===80?1:-1:0}function Zo(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const ou={type:0,value:""},iu=/[a-zA-Z0-9_]/;function lu(e){if(!e)return[[]];if(e==="/")return[[ou]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${d}": ${m}`)}let n=0,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let l=0,c,d="",f="";function h(){d&&(n===0?o.push({type:0,value:d}):n===1||n===2||n===3?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${d}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:d,regexp:f,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),d="")}function g(){d+=c}for(;l{i(L)}:Gt}function i(h){if(Yo(h)){const g=s.get(h);g&&(s.delete(h),n.splice(n.indexOf(g),1),g.children.forEach(i),g.alias.forEach(i))}else{const g=n.indexOf(h);g>-1&&(n.splice(g,1),h.record.name&&s.delete(h.record.name),h.children.forEach(i),h.alias.forEach(i))}}function l(){return n}function c(h){const g=du(h,n);n.splice(g,0,h),h.record.name&&!Er(h)&&s.set(h.record.name,h)}function d(h,g){let m,A={},I,M;if("name"in h&&h.name){if(m=s.get(h.name),!m)throw $t(1,{location:h});M=m.record.name,A=k(Sr(g.params,m.keys.filter(L=>!L.optional).concat(m.parent?m.parent.keys.filter(L=>L.optional):[]).map(L=>L.name)),h.params&&Sr(h.params,m.keys.map(L=>L.name))),I=m.stringify(A)}else if(h.path!=null)I=h.path,m=n.find(L=>L.re.test(I)),m&&(A=m.parse(I),M=m.record.name);else{if(m=g.name?s.get(g.name):n.find(L=>L.re.test(g.path)),!m)throw $t(1,{location:h,currentLocation:g});M=m.record.name,A=k({},g.params,h.params),I=m.stringify(A)}const P=[];let T=m;for(;T;)P.unshift(T.record),T=T.parent;return{name:M,path:I,params:A,matched:P,meta:au(P)}}e.forEach(h=>o(h));function f(){n.length=0,s.clear()}return{addRoute:o,resolve:d,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:r}}function Sr(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function wr(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:fu(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function fu(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Er(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function au(e){return e.reduce((t,n)=>k(t,n.meta),{})}function Rr(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}function du(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Zo(e,t[o])<0?s=o:n=o+1}const r=hu(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function hu(e){let t=e;for(;t=t.parent;)if(ei(t)&&Zo(e,t)===0)return t}function ei({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function pu(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ro&&us(o)):[s&&us(s)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function gu(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Ae(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const mu=Symbol(""),Cr=Symbol(""),Fn=Symbol(""),$s=Symbol(""),as=Symbol("");function Ht(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function nt(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const d=g=>{g===!1?c($t(4,{from:n,to:t})):g instanceof Error?c(g):eu(g)?c($t(2,{from:t,to:g})):(i&&s.enterCallbacks[r]===i&&typeof g=="function"&&i.push(g),l())},f=o(()=>e.call(s&&s.instances[r],t,n,d));let h=Promise.resolve(f);e.length<3&&(h=h.then(d)),h.catch(g=>c(g))})}function zn(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const l in i.components){let c=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(ko(c)){const f=(c.__vccOpts||c)[t];f&&o.push(nt(f,n,s,i,l,r))}else{let d=c();o.push(()=>d.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const h=wc(f)?f.default:f;i.mods[l]=f,i.components[l]=h;const m=(h.__vccOpts||h)[t];return m&&nt(m,n,s,i,l,r)()}))}}return o}function Tr(e){const t=Te(Fn),n=Te($s),s=Pe(()=>{const c=pt(e.to);return t.resolve(c)}),r=Pe(()=>{const{matched:c}=s.value,{length:d}=c,f=c[d-1],h=n.matched;if(!f||!h.length)return-1;const g=h.findIndex(Mt.bind(null,f));if(g>-1)return g;const m=Ar(c[d-2]);return d>1&&Ar(f)===m&&h[h.length-1].path!==m?h.findIndex(Mt.bind(null,c[d-2])):g}),o=Pe(()=>r.value>-1&&xu(n.params,s.value.params)),i=Pe(()=>r.value>-1&&r.value===n.matched.length-1&&Jo(n.params,s.value.params));function l(c={}){if(bu(c)){const d=t[pt(e.replace)?"replace":"push"](pt(e.to)).catch(Gt);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>d),d}return Promise.resolve()}return{route:s,href:Pe(()=>s.value.href),isActive:o,isExactActive:i,navigate:l}}function _u(e){return e.length===1?e[0]:e}const vu=vt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Tr,setup(e,{slots:t}){const n=Pn(Tr(e)),{options:s}=Te(Fn),r=Pe(()=>({[Or(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Or(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&_u(t.default(n));return e.custom?o:Uo("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),yu=vu;function bu(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function xu(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Ae(r)||r.length!==s.length||s.some((o,i)=>o!==r[i]))return!1}return!0}function Ar(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Or=(e,t,n)=>e??t??n,Su=vt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=Te(as),r=Pe(()=>e.route||s.value),o=Te(Cr,0),i=Pe(()=>{let d=pt(o);const{matched:f}=r.value;let h;for(;(h=f[d])&&!h.components;)d++;return d}),l=Pe(()=>r.value.matched[i.value]);fn(Cr,Pe(()=>i.value+1)),fn(mu,l),fn(as,r);const c=pe();return Wt(()=>[c.value,l.value,e.name],([d,f,h],[g,m,A])=>{f&&(f.instances[h]=d,m&&m!==f&&d&&d===g&&(f.leaveGuards.size||(f.leaveGuards=m.leaveGuards),f.updateGuards.size||(f.updateGuards=m.updateGuards))),d&&f&&(!m||!Mt(f,m)||!g)&&(f.enterCallbacks[h]||[]).forEach(I=>I(d))},{flush:"post"}),()=>{const d=r.value,f=e.name,h=l.value,g=h&&h.components[f];if(!g)return Ir(n.default,{Component:g,route:d});const m=h.props[f],A=m?m===!0?d.params:typeof m=="function"?m(d):m:null,M=Uo(g,k({},A,t,{onVnodeUnmounted:P=>{P.component.isUnmounted&&(h.instances[f]=null)},ref:c}));return Ir(n.default,{Component:M,route:d})||M}}});function Ir(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const ti=Su;function wu(e){const t=uu(e.routes,e),n=e.parseQuery||pu,s=e.stringifyQuery||Pr,r=e.history,o=Ht(),i=Ht(),l=Ht(),c=Fi(Ze);let d=Ze;Rt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=qn.bind(null,v=>""+v),h=qn.bind(null,Nc),g=qn.bind(null,en);function m(v,O){let R,F;return Yo(v)?(R=t.getRecordMatcher(v),F=O):F=v,t.addRoute(F,R)}function A(v){const O=t.getRecordMatcher(v);O&&t.removeRoute(O)}function I(){return t.getRoutes().map(v=>v.record)}function M(v){return!!t.getRecordMatcher(v)}function P(v,O){if(O=k({},O||c.value),typeof v=="string"){const p=Gn(n,v,O.path),_=t.resolve({path:p.path},O),b=r.createHref(p.fullPath);return k(p,_,{params:g(_.params),hash:en(p.hash),redirectedFrom:void 0,href:b})}let R;if(v.path!=null)R=k({},v,{path:Gn(n,v.path,O.path).path});else{const p=k({},v.params);for(const _ in p)p[_]==null&&delete p[_];R=k({},v,{params:h(p)}),O.params=h(O.params)}const F=t.resolve(R,O),Q=v.hash||"";F.params=f(g(F.params));const u=Dc(s,k({},v,{hash:$c(Q),path:F.path})),a=r.createHref(u);return k({fullPath:u,hash:Q,query:s===Pr?gu(v.query):v.query||{}},F,{redirectedFrom:void 0,href:a})}function T(v){return typeof v=="string"?Gn(n,v,c.value.path):k({},v)}function L(v,O){if(d!==v)return $t(8,{from:O,to:v})}function $(v){return te(v)}function J(v){return $(k(T(v),{replace:!0}))}function re(v){const O=v.matched[v.matched.length-1];if(O&&O.redirect){const{redirect:R}=O;let F=typeof R=="function"?R(v):R;return typeof F=="string"&&(F=F.includes("?")||F.includes("#")?F=T(F):{path:F},F.params={}),k({query:v.query,hash:v.hash,params:F.path!=null?{}:v.params},F)}}function te(v,O){const R=d=P(v),F=c.value,Q=v.state,u=v.force,a=v.replace===!0,p=re(R);if(p)return te(k(T(p),{state:typeof p=="object"?k({},Q,p.state):Q,force:u,replace:a}),O||R);const _=R;_.redirectedFrom=O;let b;return!u&&Uc(s,F,R)&&(b=$t(16,{to:_,from:F}),$e(F,F,!0,!1)),(b?Promise.resolve(b):Ie(_,F)).catch(y=>Ke(y)?Ke(y,2)?y:Xe(y):B(y,_,F)).then(y=>{if(y){if(Ke(y,2))return te(k({replace:a},T(y.to),{state:typeof y.to=="object"?k({},Q,y.to.state):Q,force:u}),O||_)}else y=ut(_,F,!0,a,Q);return Ye(_,F,y),y})}function Oe(v,O){const R=L(v,O);return R?Promise.reject(R):Promise.resolve()}function Qe(v){const O=xt.values().next().value;return O&&typeof O.runWithContext=="function"?O.runWithContext(v):v()}function Ie(v,O){let R;const[F,Q,u]=Eu(v,O);R=zn(F.reverse(),"beforeRouteLeave",v,O);for(const p of F)p.leaveGuards.forEach(_=>{R.push(nt(_,v,O))});const a=Oe.bind(null,v,O);return R.push(a),Se(R).then(()=>{R=[];for(const p of o.list())R.push(nt(p,v,O));return R.push(a),Se(R)}).then(()=>{R=zn(Q,"beforeRouteUpdate",v,O);for(const p of Q)p.updateGuards.forEach(_=>{R.push(nt(_,v,O))});return R.push(a),Se(R)}).then(()=>{R=[];for(const p of u)if(p.beforeEnter)if(Ae(p.beforeEnter))for(const _ of p.beforeEnter)R.push(nt(_,v,O));else R.push(nt(p.beforeEnter,v,O));return R.push(a),Se(R)}).then(()=>(v.matched.forEach(p=>p.enterCallbacks={}),R=zn(u,"beforeRouteEnter",v,O,Qe),R.push(a),Se(R))).then(()=>{R=[];for(const p of i.list())R.push(nt(p,v,O));return R.push(a),Se(R)}).catch(p=>Ke(p,8)?p:Promise.reject(p))}function Ye(v,O,R){l.list().forEach(F=>Qe(()=>F(v,O,R)))}function ut(v,O,R,F,Q){const u=L(v,O);if(u)return u;const a=O===Ze,p=Rt?history.state:{};R&&(F||a?r.replace(v.fullPath,k({scroll:a&&p&&p.scroll},Q)):r.push(v.fullPath,Q)),c.value=v,$e(v,O,R,a),Xe()}let Me;function Ft(){Me||(Me=r.listen((v,O,R)=>{if(!rn.listening)return;const F=P(v),Q=re(F);if(Q){te(k(Q,{replace:!0,force:!0}),F).catch(Gt);return}d=F;const u=c.value;Rt&&zc(_r(u.fullPath,R.delta),$n()),Ie(F,u).catch(a=>Ke(a,12)?a:Ke(a,2)?(te(k(T(a.to),{force:!0}),F).then(p=>{Ke(p,20)&&!R.delta&&R.type===tn.pop&&r.go(-1,!1)}).catch(Gt),Promise.reject()):(R.delta&&r.go(-R.delta,!1),B(a,F,u))).then(a=>{a=a||ut(F,u,!1),a&&(R.delta&&!Ke(a,8)?r.go(-R.delta,!1):R.type===tn.pop&&Ke(a,20)&&r.go(-1,!1)),Ye(F,u,a)}).catch(Gt)}))}let yt=Ht(),se=Ht(),z;function B(v,O,R){Xe(v);const F=se.list();return F.length?F.forEach(Q=>Q(v,O,R)):console.error(v),Promise.reject(v)}function Be(){return z&&c.value!==Ze?Promise.resolve():new Promise((v,O)=>{yt.add([v,O])})}function Xe(v){return z||(z=!v,Ft(),yt.list().forEach(([O,R])=>v?R(v):O()),yt.reset()),v}function $e(v,O,R,F){const{scrollBehavior:Q}=e;if(!Rt||!Q)return Promise.resolve();const u=!R&&Jc(_r(v.fullPath,0))||(F||!R)&&history.state&&history.state.scroll||null;return Ps().then(()=>Q(v,O,u)).then(a=>a&&Gc(a)).catch(a=>B(a,v,O))}const de=v=>r.go(v);let bt;const xt=new Set,rn={currentRoute:c,listening:!0,addRoute:m,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:M,getRoutes:I,resolve:P,options:e,push:$,replace:J,go:de,back:()=>de(-1),forward:()=>de(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:se.add,isReady:Be,install(v){const O=this;v.component("RouterLink",yu),v.component("RouterView",ti),v.config.globalProperties.$router=O,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>pt(c)}),Rt&&!bt&&c.value===Ze&&(bt=!0,$(r.location).catch(Q=>{}));const R={};for(const Q in Ze)Object.defineProperty(R,Q,{get:()=>c.value[Q],enumerable:!0});v.provide(Fn,O),v.provide($s,so(R)),v.provide(as,c);const F=v.unmount;xt.add(v),v.unmount=function(){xt.delete(v),xt.size<1&&(d=Ze,Me&&Me(),Me=null,c.value=Ze,bt=!1,z=!1),F()}}};function Se(v){return v.reduce((O,R)=>O.then(()=>Qe(R)),Promise.resolve())}return rn}function Eu(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iMt(d,l))?s.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(d=>Mt(d,c))||r.push(c))}return[n,s,r]}function ni(){return Te(Fn)}function Ru(e){return Te($s)}const Pu=vt({__name:"App",setup(e){return(t,n)=>(ye(),In(pt(ti)))}}),Fs=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Cu=Fs(Pu,[["__scopeId","data-v-913ef6b1"]]),Tu="modulepreload",Au=function(e){return"/"+e},Mr={},Ou=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let i=function(d){return Promise.all(d.map(f=>Promise.resolve(f).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));r=i(n.map(d=>{if(d=Au(d),d in Mr)return;Mr[d]=!0;const f=d.endsWith(".css"),h=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${h}`))return;const g=document.createElement("link");if(g.rel=f?"stylesheet":Tu,f||(g.as="script"),g.crossOrigin="",g.href=d,c&&g.setAttribute("nonce",c),document.head.appendChild(g),f)return new Promise((m,A)=>{g.addEventListener("load",m),g.addEventListener("error",()=>A(new Error(`Unable to preload CSS for ${d}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},Iu="/assets/logo-BnUTTh_g.png";function hn(e){const t="http://"+window.location.host.split(":")[0]+":8090"+e;return console.log(t),t}function ds(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16))))}const Mu={class:"body-custom"},$u={class:"form-custom form-block"},Fu={class:"center-block-custom"},Lu=["disabled"],Nu={class:"button-container"},ju={class:"second-color info-custom"},Hu=["disabled"],Du={class:"center-block-custom"},Uu={key:0},Vu={key:1},Bu={class:"message-cloud"},ku={class:"message-header"},Ku={class:"message-content"},Wu={key:0,class:"hr"},qu=vt({__name:"GameWindow",setup(e){const t=ni(),n=Ru(),s=pe(""),r=pe(""),o=pe(""),i=pe({name:"",actions:[]}),l=pe([]),c=pe(),d=pe("STOP"),f=pe("");function h(){fetch(hn("/team"),{method:"GET",headers:{"X-Id":ds(s.value),"X-Password":r.value}}).then(M=>{if(M.status==401){t.push("/login");return}return M.json()}).then(M=>{var T;i.value=M;const P=(T=i.value)==null?void 0:T.actions;l.value.length!==(P==null?void 0:P.length)&&(l.value=P)}).catch(M=>{console.error("Ошибка:",M)})}function g(){const M=o.value.trim();if(M===""){o.value="";return}fetch(hn("/team/actions"),{method:"POST",headers:{"X-Id":ds(s.value),"X-Password":r.value},body:JSON.stringify({place:M})}).then(async()=>{o.value=""})}const m=async(M="smooth")=>{await Ps(),c.value&&c.value.scrollTo({top:c.value.scrollHeight,behavior:M})};function A(){fetch(hn("/game")).then(M=>M.json()).then(M=>{d.value=M.state,M.state==="NEW"&&(f.value="Игра ещё не началась"),M.state==="RUN"&&(f.value=""),M.state==="STOP"&&(f.value="Игра остановлена")}).catch(M=>{console.error("Ошибка:",M)})}Wt(l,()=>{m()},{deep:!0});let I=0;return As(()=>{var M,P;s.value=sessionStorage.getItem("teamId")||"",r.value=sessionStorage.getItem("password")||"",s.value==""&&(s.value=((M=n.query.name)==null?void 0:M.toString())||"",r.value=((P=n.query.password)==null?void 0:P.toString())||"",sessionStorage.setItem("teamId",s.value),sessionStorage.setItem("password",r.value)),h(),I=setInterval(()=>{h(),A()},2e3),t.beforeEach((T,L,$)=>{clearInterval(I),$()})}),(M,P)=>(ye(),We("div",Mu,[P[3]||(P[3]=G("img",{alt:"Вечерний детектив",class:"logo",src:Iu,width:"40",height:"40"},null,-1)),P[4]||(P[4]=G("div",{class:"header-block"}," Вечерний детектив ",-1)),G("div",$u,[G("div",Fu,[G("form",{onSubmit:Bo(g,["prevent"])},[G("div",null,[ts(G("input",{class:"input-custom","onUpdate:modelValue":P[0]||(P[0]=T=>o.value=T),type:"text",placeholder:"Место назначения (А-1, а-1, а1)",disabled:d.value!=="RUN"},null,8,Lu),[[cs,o.value]])]),G("div",Nu,[G("div",ju,st(f.value),1),G("button",{class:"button-custom",type:"submit",disabled:d.value!=="RUN"},"Поехали",8,Hu)])],32)])]),G("div",{class:"messages-block",ref_key:"scrollContainer",ref:c},[G("div",Du,[!i.value||!i.value.actions.length?(ye(),We("div",Uu,P[1]||(P[1]=[G("div",{class:"center-message"}," Пора решать загадку ",-1)]))):(ye(),We("div",Vu,[(ye(!0),We(we,null,Bs(i.value.actions,T=>(ye(),We("div",{key:T.id},[G("div",Bu,[G("div",ku,st(T.place)+": "+st(T.name),1),P[2]||(P[2]=G("hr",{class:"hr"},null,-1)),G("div",Ku,st(T.text),1),T.applications.length?(ye(),We("hr",Wu)):jl("",!0),(ye(!0),We(we,null,Bs(T.applications,L=>(ye(),We("div",{class:"message-footer",key:L.name}," Приложение: "+st(L.name),1))),128))])]))),128))]))])],512)]))}}),Gu=Fs(qu,[["__scopeId","data-v-b046e79d"]]),zu=vt({__name:"HomeView",setup(e){return(t,n)=>(ye(),In(Gu))}}),Ju={class:"center-message"},Qu={class:"button-container"},Yu={class:"button-custom",type:"submit"},Xu={class:"error-message"},Zu=vt({__name:"LoginWindow",setup(e){const t=ni(),n=pe(""),s=pe(""),r=pe("Вход"),o=pe("");function i(){const l=r.value;r.value="Загрузка...",o.value="",fetch(hn("/team"),{method:"GET",headers:{"X-Id":ds(n.value),"X-Password":s.value}}).then(c=>{if(c.status==200){sessionStorage.setItem("teamId",n.value),sessionStorage.setItem("password",s.value),t.push("/");return}if(c.status==401){if(n.value==""&&s.value=="")return;o.value="Не верны название команды или пароль";return}o.value="ХЗ что это "+c}).catch(()=>{o.value="Сервер не доступен"}).finally(()=>{r.value=l})}return As(()=>{n.value=sessionStorage.getItem("teamId")||"",s.value=sessionStorage.getItem("password")||"",i()}),(l,c)=>(ye(),We(we,null,[c[2]||(c[2]=G("div",{class:"header-block"}," Вечерний детектив ",-1)),G("div",Ju,[G("form",{onSubmit:Bo(i,["prevent"])},[G("div",null,[ts(G("input",{class:"input-custom","onUpdate:modelValue":c[0]||(c[0]=d=>n.value=d),type:"text",placeholder:"Название команды"},null,512),[[cs,n.value]])]),G("div",null,[ts(G("input",{class:"input-custom","onUpdate:modelValue":c[1]||(c[1]=d=>s.value=d),type:"text",placeholder:"Пароль",autocapitalize:"off"},null,512),[[cs,s.value]])]),G("div",Qu,[G("button",Yu,st(r.value),1)]),G("div",Xu,st(o.value),1)],32)])],64))}}),ef=Fs(Zu,[["__scopeId","data-v-13746d20"]]),tf=vt({__name:"LoginView",setup(e){return(t,n)=>(ye(),In(ef))}}),nf=wu({history:Zc("/"),routes:[{path:"/",name:"home",component:zu},{path:"/login",name:"login",component:tf},{path:"/about",name:"about",component:()=>Ou(()=>import("./AboutView-Bka3SLpW.js"),__vite__mapDeps([0,1]))}]}),Ls=vc(Cu);Ls.use(Sc());Ls.use(nf);Ls.mount("#app");export{Fs as _,G as a,We as c,ye as o}; + */const Rt=typeof document<"u";function ko(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function wc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ko(e.default)}const k=Object.assign;function qn(e,t){const n={};for(const s in t){const r=t[s];n[s]=Ae(r)?r.map(e):e(r)}return n}const Gt=()=>{},Ae=Array.isArray,Ko=/#/g,Ec=/&/g,Rc=/\//g,Pc=/=/g,Cc=/\?/g,Wo=/\+/g,Tc=/%5B/g,Ac=/%5D/g,qo=/%5E/g,Oc=/%60/g,Go=/%7B/g,Ic=/%7C/g,zo=/%7D/g,Mc=/%20/g;function Ms(e){return encodeURI(""+e).replace(Ic,"|").replace(Tc,"[").replace(Ac,"]")}function $c(e){return Ms(e).replace(Go,"{").replace(zo,"}").replace(qo,"^")}function us(e){return Ms(e).replace(Wo,"%2B").replace(Mc,"+").replace(Ko,"%23").replace(Ec,"%26").replace(Oc,"`").replace(Go,"{").replace(zo,"}").replace(qo,"^")}function Fc(e){return us(e).replace(Pc,"%3D")}function Lc(e){return Ms(e).replace(Ko,"%23").replace(Cc,"%3F")}function Nc(e){return e==null?"":Lc(e).replace(Rc,"%2F")}function en(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const jc=/\/$/,Hc=e=>e.replace(jc,"");function Gn(e,t,n="/"){let s,r={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return l=0&&(c=-1),c>-1&&(s=t.slice(0,c),o=t.slice(c+1,l>-1?l:t.length),r=e(o)),l>-1&&(s=s||t.slice(0,l),i=t.slice(l,t.length)),s=Bc(s??t,n),{fullPath:s+(o&&"?")+o+i,path:s,query:r,hash:en(i)}}function Dc(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function gr(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Uc(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&Mt(t.matched[s],n.matched[r])&&Jo(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Mt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Jo(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Vc(e[n],t[n]))return!1;return!0}function Vc(e,t){return Ae(e)?mr(e,t):Ae(t)?mr(t,e):e===t}function mr(e,t){return Ae(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function Bc(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const Ze={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var tn;(function(e){e.pop="pop",e.push="push"})(tn||(tn={}));var zt;(function(e){e.back="back",e.forward="forward",e.unknown=""})(zt||(zt={}));function kc(e){if(!e)if(Rt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Hc(e)}const Kc=/^[^#]+#/;function Wc(e,t){return e.replace(Kc,"#")+t}function qc(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const $n=()=>({left:window.scrollX,top:window.scrollY});function Gc(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=qc(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function _r(e,t){return(history.state?history.state.position-t:-1)+e}const fs=new Map;function zc(e,t){fs.set(e,t)}function Jc(e){const t=fs.get(e);return fs.delete(e),t}let Qc=()=>location.protocol+"//"+location.host;function Qo(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let l=r.includes(e.slice(o))?e.slice(o).length:1,c=r.slice(l);return c[0]!=="/"&&(c="/"+c),gr(c,"")}return gr(n,e)+s+r}function Yc(e,t,n,s){let r=[],o=[],i=null;const l=({state:g})=>{const m=Qo(e,location),A=n.value,I=t.value;let M=0;if(g){if(n.value=m,t.value=g,i&&i===A){i=null;return}M=I?g.position-I.position:0}else s(m);r.forEach(P=>{P(n.value,A,{delta:M,type:tn.pop,direction:M?M>0?zt.forward:zt.back:zt.unknown})})};function c(){i=n.value}function d(g){r.push(g);const m=()=>{const A=r.indexOf(g);A>-1&&r.splice(A,1)};return o.push(m),m}function f(){const{history:g}=window;g.state&&g.replaceState(k({},g.state,{scroll:$n()}),"")}function h(){for(const g of o)g();o=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:c,listen:d,destroy:h}}function vr(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?$n():null}}function Xc(e){const{history:t,location:n}=window,s={value:Qo(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,d,f){const h=e.indexOf("#"),g=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:Qc()+e+c;try{t[f?"replaceState":"pushState"](d,"",g),r.value=d}catch(m){console.error(m),n[f?"replace":"assign"](g)}}function i(c,d){const f=k({},t.state,vr(r.value.back,c,r.value.forward,!0),d,{position:r.value.position});o(c,f,!0),s.value=c}function l(c,d){const f=k({},r.value,t.state,{forward:c,scroll:$n()});o(f.current,f,!0);const h=k({},vr(s.value,c,null),{position:f.position+1},d);o(c,h,!1),s.value=c}return{location:s,state:r,push:l,replace:i}}function Zc(e){e=kc(e);const t=Xc(e),n=Yc(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=k({location:"",base:e,go:s,createHref:Wc.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function eu(e){return typeof e=="string"||e&&typeof e=="object"}function Yo(e){return typeof e=="string"||typeof e=="symbol"}const Xo=Symbol("");var yr;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(yr||(yr={}));function $t(e,t){return k(new Error,{type:e,[Xo]:!0},t)}function Ke(e,t){return e instanceof Error&&Xo in e&&(t==null||!!(e.type&t))}const br="[^/]+?",tu={sensitive:!1,strict:!1,start:!0,end:!0},nu=/[.+*?^${}()[\]/\\]/g;function su(e,t){const n=k({},tu,t),s=[];let r=n.start?"^":"";const o=[];for(const d of e){const f=d.length?[]:[90];n.strict&&!d.length&&(r+="/");for(let h=0;ht.length?t.length===1&&t[0]===80?1:-1:0}function Zo(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const ou={type:0,value:""},iu=/[a-zA-Z0-9_]/;function lu(e){if(!e)return[[]];if(e==="/")return[[ou]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${d}": ${m}`)}let n=0,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let l=0,c,d="",f="";function h(){d&&(n===0?o.push({type:0,value:d}):n===1||n===2||n===3?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${d}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:d,regexp:f,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),d="")}function g(){d+=c}for(;l{i(L)}:Gt}function i(h){if(Yo(h)){const g=s.get(h);g&&(s.delete(h),n.splice(n.indexOf(g),1),g.children.forEach(i),g.alias.forEach(i))}else{const g=n.indexOf(h);g>-1&&(n.splice(g,1),h.record.name&&s.delete(h.record.name),h.children.forEach(i),h.alias.forEach(i))}}function l(){return n}function c(h){const g=du(h,n);n.splice(g,0,h),h.record.name&&!Er(h)&&s.set(h.record.name,h)}function d(h,g){let m,A={},I,M;if("name"in h&&h.name){if(m=s.get(h.name),!m)throw $t(1,{location:h});M=m.record.name,A=k(Sr(g.params,m.keys.filter(L=>!L.optional).concat(m.parent?m.parent.keys.filter(L=>L.optional):[]).map(L=>L.name)),h.params&&Sr(h.params,m.keys.map(L=>L.name))),I=m.stringify(A)}else if(h.path!=null)I=h.path,m=n.find(L=>L.re.test(I)),m&&(A=m.parse(I),M=m.record.name);else{if(m=g.name?s.get(g.name):n.find(L=>L.re.test(g.path)),!m)throw $t(1,{location:h,currentLocation:g});M=m.record.name,A=k({},g.params,h.params),I=m.stringify(A)}const P=[];let T=m;for(;T;)P.unshift(T.record),T=T.parent;return{name:M,path:I,params:A,matched:P,meta:au(P)}}e.forEach(h=>o(h));function f(){n.length=0,s.clear()}return{addRoute:o,resolve:d,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:r}}function Sr(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function wr(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:fu(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function fu(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Er(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function au(e){return e.reduce((t,n)=>k(t,n.meta),{})}function Rr(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}function du(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Zo(e,t[o])<0?s=o:n=o+1}const r=hu(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function hu(e){let t=e;for(;t=t.parent;)if(ei(t)&&Zo(e,t)===0)return t}function ei({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function pu(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ro&&us(o)):[s&&us(s)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function gu(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Ae(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const mu=Symbol(""),Cr=Symbol(""),Fn=Symbol(""),$s=Symbol(""),as=Symbol("");function Ht(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function nt(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const d=g=>{g===!1?c($t(4,{from:n,to:t})):g instanceof Error?c(g):eu(g)?c($t(2,{from:t,to:g})):(i&&s.enterCallbacks[r]===i&&typeof g=="function"&&i.push(g),l())},f=o(()=>e.call(s&&s.instances[r],t,n,d));let h=Promise.resolve(f);e.length<3&&(h=h.then(d)),h.catch(g=>c(g))})}function zn(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const l in i.components){let c=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(ko(c)){const f=(c.__vccOpts||c)[t];f&&o.push(nt(f,n,s,i,l,r))}else{let d=c();o.push(()=>d.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const h=wc(f)?f.default:f;i.mods[l]=f,i.components[l]=h;const m=(h.__vccOpts||h)[t];return m&&nt(m,n,s,i,l,r)()}))}}return o}function Tr(e){const t=Te(Fn),n=Te($s),s=Pe(()=>{const c=pt(e.to);return t.resolve(c)}),r=Pe(()=>{const{matched:c}=s.value,{length:d}=c,f=c[d-1],h=n.matched;if(!f||!h.length)return-1;const g=h.findIndex(Mt.bind(null,f));if(g>-1)return g;const m=Ar(c[d-2]);return d>1&&Ar(f)===m&&h[h.length-1].path!==m?h.findIndex(Mt.bind(null,c[d-2])):g}),o=Pe(()=>r.value>-1&&xu(n.params,s.value.params)),i=Pe(()=>r.value>-1&&r.value===n.matched.length-1&&Jo(n.params,s.value.params));function l(c={}){if(bu(c)){const d=t[pt(e.replace)?"replace":"push"](pt(e.to)).catch(Gt);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>d),d}return Promise.resolve()}return{route:s,href:Pe(()=>s.value.href),isActive:o,isExactActive:i,navigate:l}}function _u(e){return e.length===1?e[0]:e}const vu=vt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Tr,setup(e,{slots:t}){const n=Pn(Tr(e)),{options:s}=Te(Fn),r=Pe(()=>({[Or(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Or(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&_u(t.default(n));return e.custom?o:Uo("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),yu=vu;function bu(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function xu(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Ae(r)||r.length!==s.length||s.some((o,i)=>o!==r[i]))return!1}return!0}function Ar(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Or=(e,t,n)=>e??t??n,Su=vt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=Te(as),r=Pe(()=>e.route||s.value),o=Te(Cr,0),i=Pe(()=>{let d=pt(o);const{matched:f}=r.value;let h;for(;(h=f[d])&&!h.components;)d++;return d}),l=Pe(()=>r.value.matched[i.value]);fn(Cr,Pe(()=>i.value+1)),fn(mu,l),fn(as,r);const c=pe();return Wt(()=>[c.value,l.value,e.name],([d,f,h],[g,m,A])=>{f&&(f.instances[h]=d,m&&m!==f&&d&&d===g&&(f.leaveGuards.size||(f.leaveGuards=m.leaveGuards),f.updateGuards.size||(f.updateGuards=m.updateGuards))),d&&f&&(!m||!Mt(f,m)||!g)&&(f.enterCallbacks[h]||[]).forEach(I=>I(d))},{flush:"post"}),()=>{const d=r.value,f=e.name,h=l.value,g=h&&h.components[f];if(!g)return Ir(n.default,{Component:g,route:d});const m=h.props[f],A=m?m===!0?d.params:typeof m=="function"?m(d):m:null,M=Uo(g,k({},A,t,{onVnodeUnmounted:P=>{P.component.isUnmounted&&(h.instances[f]=null)},ref:c}));return Ir(n.default,{Component:M,route:d})||M}}});function Ir(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const ti=Su;function wu(e){const t=uu(e.routes,e),n=e.parseQuery||pu,s=e.stringifyQuery||Pr,r=e.history,o=Ht(),i=Ht(),l=Ht(),c=Fi(Ze);let d=Ze;Rt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=qn.bind(null,v=>""+v),h=qn.bind(null,Nc),g=qn.bind(null,en);function m(v,O){let R,F;return Yo(v)?(R=t.getRecordMatcher(v),F=O):F=v,t.addRoute(F,R)}function A(v){const O=t.getRecordMatcher(v);O&&t.removeRoute(O)}function I(){return t.getRoutes().map(v=>v.record)}function M(v){return!!t.getRecordMatcher(v)}function P(v,O){if(O=k({},O||c.value),typeof v=="string"){const p=Gn(n,v,O.path),_=t.resolve({path:p.path},O),b=r.createHref(p.fullPath);return k(p,_,{params:g(_.params),hash:en(p.hash),redirectedFrom:void 0,href:b})}let R;if(v.path!=null)R=k({},v,{path:Gn(n,v.path,O.path).path});else{const p=k({},v.params);for(const _ in p)p[_]==null&&delete p[_];R=k({},v,{params:h(p)}),O.params=h(O.params)}const F=t.resolve(R,O),Q=v.hash||"";F.params=f(g(F.params));const u=Dc(s,k({},v,{hash:$c(Q),path:F.path})),a=r.createHref(u);return k({fullPath:u,hash:Q,query:s===Pr?gu(v.query):v.query||{}},F,{redirectedFrom:void 0,href:a})}function T(v){return typeof v=="string"?Gn(n,v,c.value.path):k({},v)}function L(v,O){if(d!==v)return $t(8,{from:O,to:v})}function $(v){return te(v)}function J(v){return $(k(T(v),{replace:!0}))}function re(v){const O=v.matched[v.matched.length-1];if(O&&O.redirect){const{redirect:R}=O;let F=typeof R=="function"?R(v):R;return typeof F=="string"&&(F=F.includes("?")||F.includes("#")?F=T(F):{path:F},F.params={}),k({query:v.query,hash:v.hash,params:F.path!=null?{}:v.params},F)}}function te(v,O){const R=d=P(v),F=c.value,Q=v.state,u=v.force,a=v.replace===!0,p=re(R);if(p)return te(k(T(p),{state:typeof p=="object"?k({},Q,p.state):Q,force:u,replace:a}),O||R);const _=R;_.redirectedFrom=O;let b;return!u&&Uc(s,F,R)&&(b=$t(16,{to:_,from:F}),$e(F,F,!0,!1)),(b?Promise.resolve(b):Ie(_,F)).catch(y=>Ke(y)?Ke(y,2)?y:Xe(y):B(y,_,F)).then(y=>{if(y){if(Ke(y,2))return te(k({replace:a},T(y.to),{state:typeof y.to=="object"?k({},Q,y.to.state):Q,force:u}),O||_)}else y=ut(_,F,!0,a,Q);return Ye(_,F,y),y})}function Oe(v,O){const R=L(v,O);return R?Promise.reject(R):Promise.resolve()}function Qe(v){const O=xt.values().next().value;return O&&typeof O.runWithContext=="function"?O.runWithContext(v):v()}function Ie(v,O){let R;const[F,Q,u]=Eu(v,O);R=zn(F.reverse(),"beforeRouteLeave",v,O);for(const p of F)p.leaveGuards.forEach(_=>{R.push(nt(_,v,O))});const a=Oe.bind(null,v,O);return R.push(a),Se(R).then(()=>{R=[];for(const p of o.list())R.push(nt(p,v,O));return R.push(a),Se(R)}).then(()=>{R=zn(Q,"beforeRouteUpdate",v,O);for(const p of Q)p.updateGuards.forEach(_=>{R.push(nt(_,v,O))});return R.push(a),Se(R)}).then(()=>{R=[];for(const p of u)if(p.beforeEnter)if(Ae(p.beforeEnter))for(const _ of p.beforeEnter)R.push(nt(_,v,O));else R.push(nt(p.beforeEnter,v,O));return R.push(a),Se(R)}).then(()=>(v.matched.forEach(p=>p.enterCallbacks={}),R=zn(u,"beforeRouteEnter",v,O,Qe),R.push(a),Se(R))).then(()=>{R=[];for(const p of i.list())R.push(nt(p,v,O));return R.push(a),Se(R)}).catch(p=>Ke(p,8)?p:Promise.reject(p))}function Ye(v,O,R){l.list().forEach(F=>Qe(()=>F(v,O,R)))}function ut(v,O,R,F,Q){const u=L(v,O);if(u)return u;const a=O===Ze,p=Rt?history.state:{};R&&(F||a?r.replace(v.fullPath,k({scroll:a&&p&&p.scroll},Q)):r.push(v.fullPath,Q)),c.value=v,$e(v,O,R,a),Xe()}let Me;function Ft(){Me||(Me=r.listen((v,O,R)=>{if(!rn.listening)return;const F=P(v),Q=re(F);if(Q){te(k(Q,{replace:!0,force:!0}),F).catch(Gt);return}d=F;const u=c.value;Rt&&zc(_r(u.fullPath,R.delta),$n()),Ie(F,u).catch(a=>Ke(a,12)?a:Ke(a,2)?(te(k(T(a.to),{force:!0}),F).then(p=>{Ke(p,20)&&!R.delta&&R.type===tn.pop&&r.go(-1,!1)}).catch(Gt),Promise.reject()):(R.delta&&r.go(-R.delta,!1),B(a,F,u))).then(a=>{a=a||ut(F,u,!1),a&&(R.delta&&!Ke(a,8)?r.go(-R.delta,!1):R.type===tn.pop&&Ke(a,20)&&r.go(-1,!1)),Ye(F,u,a)}).catch(Gt)}))}let yt=Ht(),se=Ht(),z;function B(v,O,R){Xe(v);const F=se.list();return F.length?F.forEach(Q=>Q(v,O,R)):console.error(v),Promise.reject(v)}function Be(){return z&&c.value!==Ze?Promise.resolve():new Promise((v,O)=>{yt.add([v,O])})}function Xe(v){return z||(z=!v,Ft(),yt.list().forEach(([O,R])=>v?R(v):O()),yt.reset()),v}function $e(v,O,R,F){const{scrollBehavior:Q}=e;if(!Rt||!Q)return Promise.resolve();const u=!R&&Jc(_r(v.fullPath,0))||(F||!R)&&history.state&&history.state.scroll||null;return Ps().then(()=>Q(v,O,u)).then(a=>a&&Gc(a)).catch(a=>B(a,v,O))}const de=v=>r.go(v);let bt;const xt=new Set,rn={currentRoute:c,listening:!0,addRoute:m,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:M,getRoutes:I,resolve:P,options:e,push:$,replace:J,go:de,back:()=>de(-1),forward:()=>de(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:se.add,isReady:Be,install(v){const O=this;v.component("RouterLink",yu),v.component("RouterView",ti),v.config.globalProperties.$router=O,Object.defineProperty(v.config.globalProperties,"$route",{enumerable:!0,get:()=>pt(c)}),Rt&&!bt&&c.value===Ze&&(bt=!0,$(r.location).catch(Q=>{}));const R={};for(const Q in Ze)Object.defineProperty(R,Q,{get:()=>c.value[Q],enumerable:!0});v.provide(Fn,O),v.provide($s,so(R)),v.provide(as,c);const F=v.unmount;xt.add(v),v.unmount=function(){xt.delete(v),xt.size<1&&(d=Ze,Me&&Me(),Me=null,c.value=Ze,bt=!1,z=!1),F()}}};function Se(v){return v.reduce((O,R)=>O.then(()=>Qe(R)),Promise.resolve())}return rn}function Eu(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iMt(d,l))?s.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(d=>Mt(d,c))||r.push(c))}return[n,s,r]}function ni(){return Te(Fn)}function Ru(e){return Te($s)}const Pu=vt({__name:"App",setup(e){return(t,n)=>(ye(),In(pt(ti)))}}),Fs=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Cu=Fs(Pu,[["__scopeId","data-v-913ef6b1"]]),Tu="modulepreload",Au=function(e){return"/"+e},Mr={},Ou=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let i=function(d){return Promise.all(d.map(f=>Promise.resolve(f).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));r=i(n.map(d=>{if(d=Au(d),d in Mr)return;Mr[d]=!0;const f=d.endsWith(".css"),h=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${h}`))return;const g=document.createElement("link");if(g.rel=f?"stylesheet":Tu,f||(g.as="script"),g.crossOrigin="",g.href=d,c&&g.setAttribute("nonce",c),document.head.appendChild(g),f)return new Promise((m,A)=>{g.addEventListener("load",m),g.addEventListener("error",()=>A(new Error(`Unable to preload CSS for ${d}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},Iu="/assets/logo-BnUTTh_g.png";function hn(e){const t="http://"+window.location.host.split(":")[0]+":8090"+e;return console.log(t),t}function ds(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16))))}const Mu={class:"body-custom"},$u={class:"form-custom form-block"},Fu={class:"center-block-custom"},Lu=["disabled"],Nu={class:"button-container"},ju={class:"second-color info-custom"},Hu=["disabled"],Du={class:"center-block-custom"},Uu={key:0},Vu={key:1},Bu={class:"message-cloud"},ku={class:"message-header"},Ku={class:"message-content"},Wu={key:0,class:"hr"},qu=vt({__name:"GameWindow",setup(e){const t=ni(),n=Ru(),s=pe(""),r=pe(""),o=pe(""),i=pe({name:"",actions:[]}),l=pe([]),c=pe(),d=pe("STOP"),f=pe("");function h(){fetch(hn("/team"),{method:"GET",headers:{"X-Id":ds(s.value),"X-Password":r.value}}).then(M=>{if(M.status==401){t.push("/login");return}return M.json()}).then(M=>{var T;i.value=M;const P=(T=i.value)==null?void 0:T.actions;l.value.length!==(P==null?void 0:P.length)&&(l.value=P)}).catch(M=>{console.error("Ошибка:",M)})}function g(){const M=o.value.trim();if(M===""){o.value="";return}fetch(hn("/team/actions"),{method:"POST",headers:{"X-Id":ds(s.value),"X-Password":r.value},body:JSON.stringify({place:M})}).then(async()=>{o.value=""})}const m=async(M="smooth")=>{await Ps(),c.value&&c.value.scrollTo({top:c.value.scrollHeight,behavior:M})};function A(){fetch(hn("/game")).then(M=>M.json()).then(M=>{d.value=M.state,M.state==="NEW"&&(f.value="Игра ещё не началась"),M.state==="RUN"&&(f.value=""),M.state==="STOP"&&(f.value="Игра остановлена")}).catch(M=>{console.error("Ошибка:",M)})}Wt(l,()=>{m()},{deep:!0});let I=0;return As(()=>{var M,P;s.value=sessionStorage.getItem("teamId")||"",r.value=sessionStorage.getItem("password")||"",s.value==""&&(s.value=((M=n.query.name)==null?void 0:M.toString())||"",r.value=((P=n.query.password)==null?void 0:P.toString())||"",sessionStorage.setItem("teamId",s.value),sessionStorage.setItem("password",r.value)),h(),I=setInterval(()=>{h(),A()},2e3),t.beforeEach((T,L,$)=>{clearInterval(I),$()})}),(M,P)=>(ye(),We("div",Mu,[P[3]||(P[3]=G("img",{alt:"Вечерний детектив",class:"logo",src:Iu,width:"40",height:"40"},null,-1)),P[4]||(P[4]=G("div",{class:"header-block"}," Вечерний детектив ",-1)),G("div",$u,[G("div",Fu,[G("form",{onSubmit:Bo(g,["prevent"])},[G("div",null,[ts(G("input",{class:"input-custom","onUpdate:modelValue":P[0]||(P[0]=T=>o.value=T),type:"text",placeholder:"Место назначения (А-1, а-1, а1)",disabled:d.value!=="RUN"},null,8,Lu),[[cs,o.value]])]),G("div",Nu,[G("div",ju,st(f.value),1),G("button",{class:"button-custom",type:"submit",disabled:d.value!=="RUN"},"Поехали",8,Hu)])],32)])]),G("div",{class:"messages-block",ref_key:"scrollContainer",ref:c},[G("div",Du,[!i.value||!i.value.actions.length?(ye(),We("div",Uu,P[1]||(P[1]=[G("div",{class:"center-message"}," Пора решать загадку ",-1)]))):(ye(),We("div",Vu,[(ye(!0),We(we,null,Bs(i.value.actions,T=>(ye(),We("div",{key:T.id},[G("div",Bu,[G("div",ku,st(T.place)+": "+st(T.name),1),P[2]||(P[2]=G("hr",{class:"hr"},null,-1)),G("div",Ku,st(T.text),1),T.applications.length?(ye(),We("hr",Wu)):jl("",!0),(ye(!0),We(we,null,Bs(T.applications,L=>(ye(),We("div",{class:"message-footer",key:L.name}," Приложение: "+st(L.name),1))),128))])]))),128))]))])],512)]))}}),Gu=Fs(qu,[["__scopeId","data-v-a43a0f9c"]]),zu=vt({__name:"HomeView",setup(e){return(t,n)=>(ye(),In(Gu))}}),Ju={class:"center-message"},Qu={class:"button-container"},Yu={class:"button-custom",type:"submit"},Xu={class:"error-message"},Zu=vt({__name:"LoginWindow",setup(e){const t=ni(),n=pe(""),s=pe(""),r=pe("Вход"),o=pe("");function i(){const l=r.value;r.value="Загрузка...",o.value="",fetch(hn("/team"),{method:"GET",headers:{"X-Id":ds(n.value),"X-Password":s.value}}).then(c=>{if(c.status==200){sessionStorage.setItem("teamId",n.value),sessionStorage.setItem("password",s.value),t.push("/");return}if(c.status==401){if(n.value==""&&s.value=="")return;o.value="Не верны название команды или пароль";return}o.value="ХЗ что это "+c}).catch(()=>{o.value="Сервер не доступен"}).finally(()=>{r.value=l})}return As(()=>{n.value=sessionStorage.getItem("teamId")||"",s.value=sessionStorage.getItem("password")||"",i()}),(l,c)=>(ye(),We(we,null,[c[2]||(c[2]=G("div",{class:"header-block"}," Вечерний детектив ",-1)),G("div",Ju,[G("form",{onSubmit:Bo(i,["prevent"])},[G("div",null,[ts(G("input",{class:"input-custom","onUpdate:modelValue":c[0]||(c[0]=d=>n.value=d),type:"text",placeholder:"Название команды"},null,512),[[cs,n.value]])]),G("div",null,[ts(G("input",{class:"input-custom","onUpdate:modelValue":c[1]||(c[1]=d=>s.value=d),type:"text",placeholder:"Пароль",autocapitalize:"off"},null,512),[[cs,s.value]])]),G("div",Qu,[G("button",Yu,st(r.value),1)]),G("div",Xu,st(o.value),1)],32)])],64))}}),ef=Fs(Zu,[["__scopeId","data-v-13746d20"]]),tf=vt({__name:"LoginView",setup(e){return(t,n)=>(ye(),In(ef))}}),nf=wu({history:Zc("/"),routes:[{path:"/",name:"home",component:zu},{path:"/login",name:"login",component:tf},{path:"/about",name:"about",component:()=>Ou(()=>import("./AboutView-B8sW-Yaj.js"),__vite__mapDeps([0,1]))}]}),Ls=vc(Cu);Ls.use(Sc());Ls.use(nf);Ls.mount("#app");export{Fs as _,G as a,We as c,ye as o}; diff --git a/static/user/assets/index-4RELVI5s.css b/static/user/assets/index-DCF9Sqnk.css similarity index 74% rename from static/user/assets/index-4RELVI5s.css rename to static/user/assets/index-DCF9Sqnk.css index f4928f1..6b1cc46 100644 --- a/static/user/assets/index-4RELVI5s.css +++ b/static/user/assets/index-DCF9Sqnk.css @@ -1 +1 @@ -:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--main-color: rgba(34, 50, 60, 1);--second-color: rgb(136, 105, 31);--main-back-color: rgba(240, 240, 240, 1);--main-back-item-color: rgba(254, 254, 254, 1)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100dvh;color:var(--color-text);background:var(--main-back-color);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header-block{height:60px;background-color:var(--main-color);font-size:large;color:#fff;vertical-align:middle;padding:15px 0 10px 16px;font-weight:700}.input-custom{width:100%;box-sizing:border-box;margin-bottom:15px}.button-custom{margin-left:auto;background-color:var(--main-color);font-weight:600;color:#fff}.button-custom:hover{background-color:var(--main-color);opacity:.9}.button-custom:disabled{opacity:.5}.input-custom,.button-custom{padding:12px 16px;border:1px solid #ddd;border-radius:15px;font-size:16px}.button-container{display:flex}.center-message{display:flex;justify-content:center;align-items:center;height:calc(100dvh - 100px);text-align:center}header[data-v-913ef6b1]{line-height:1.5;max-height:100vh}.logo[data-v-913ef6b1]{display:block;margin:0 auto 2rem}nav[data-v-913ef6b1]{width:100%;font-size:12px;text-align:center;margin-top:2rem}nav a.router-link-exact-active[data-v-913ef6b1]{color:var(--color-text)}nav a.router-link-exact-active[data-v-913ef6b1]:hover{background-color:transparent}nav a[data-v-913ef6b1]{display:inline-block;padding:0 1rem;border-left:1px solid var(--color-border)}nav a[data-v-913ef6b1]:first-of-type{border:0}@media (min-width: 1024px){header[data-v-913ef6b1]{display:flex;place-items:center;padding-right:calc(var(--section-gap) / 2)}.logo[data-v-913ef6b1]{margin:0 2rem 0 0}header .wrapper[data-v-913ef6b1]{display:flex;place-items:flex-start;flex-wrap:wrap}nav[data-v-913ef6b1]{text-align:left;margin-left:-1rem;font-size:1rem;padding:1rem 0;margin-top:1rem}}body[data-v-b046e79d]{overflow:hidden}.hr[data-v-b046e79d]{margin:7px 0}.body-custom[data-v-b046e79d]{font-size:medium}.info-custom[data-v-b046e79d]{padding-left:15px}.logo[data-v-b046e79d]{float:left;margin:10px}.second-color[data-v-b046e79d]{color:var(--second-color)}.form-custom[data-v-b046e79d]{border:1px solid #444444;background-color:var(--main-back-color);position:fixed;bottom:0;left:0;width:100%;padding:20px;color:#fff}.message-cloud[data-v-b046e79d]{border:1px solid #444444;border-radius:15px;margin:12px 2px;padding:16px;background-color:var(--main-back-item-color)}.message-header[data-v-b046e79d]{font-size:large;font-weight:200}.message-content[data-v-b046e79d]{font-weight:500;white-space:pre-line}.message-footer[data-v-b046e79d]{font-weight:400;color:var(--second-color)}.form-block[data-v-b046e79d]{height:140px}.messages-block[data-v-b046e79d]{height:calc(100dvh - 200px);overflow-y:auto;scrollbar-width:none}@media (min-width: 1025px){.center-block-custom[data-v-b046e79d]{width:700px;margin:0 auto}}.center-message[data-v-b046e79d]{height:calc(100dvh - 140px)}.error-message[data-v-13746d20]{color:brown;margin:16px 0} +:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--main-color: rgba(34, 50, 60, 1);--second-color: rgb(136, 105, 31);--main-back-color: rgba(240, 240, 240, 1);--main-back-item-color: rgba(254, 254, 254, 1)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100dvh;color:var(--color-text);background:var(--main-back-color);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header-block{height:60px;background-color:var(--main-color);font-size:large;color:#fff;vertical-align:middle;padding:15px 0 10px 16px;font-weight:700}.input-custom{width:100%;box-sizing:border-box;margin-bottom:15px}.button-custom{margin-left:auto;background-color:var(--main-color);font-weight:600;color:#fff}.button-custom:hover{background-color:var(--main-color);opacity:.9}.button-custom:disabled{opacity:.5}.input-custom,.button-custom{padding:12px 16px;border:1px solid #ddd;border-radius:15px;font-size:16px}.button-container{display:flex}.center-message{display:flex;justify-content:center;align-items:center;height:calc(100dvh - 100px);text-align:center}header[data-v-913ef6b1]{line-height:1.5;max-height:100vh}.logo[data-v-913ef6b1]{display:block;margin:0 auto 2rem}nav[data-v-913ef6b1]{width:100%;font-size:12px;text-align:center;margin-top:2rem}nav a.router-link-exact-active[data-v-913ef6b1]{color:var(--color-text)}nav a.router-link-exact-active[data-v-913ef6b1]:hover{background-color:transparent}nav a[data-v-913ef6b1]{display:inline-block;padding:0 1rem;border-left:1px solid var(--color-border)}nav a[data-v-913ef6b1]:first-of-type{border:0}@media (min-width: 1024px){header[data-v-913ef6b1]{display:flex;place-items:center;padding-right:calc(var(--section-gap) / 2)}.logo[data-v-913ef6b1]{margin:0 2rem 0 0}header .wrapper[data-v-913ef6b1]{display:flex;place-items:flex-start;flex-wrap:wrap}nav[data-v-913ef6b1]{text-align:left;margin-left:-1rem;font-size:1rem;padding:1rem 0;margin-top:1rem}}body[data-v-a43a0f9c]{overflow:hidden}.hr[data-v-a43a0f9c]{margin:7px 0}.body-custom[data-v-a43a0f9c]{font-size:medium}.info-custom[data-v-a43a0f9c]{padding-left:15px}.logo[data-v-a43a0f9c]{float:left;margin:10px}.second-color[data-v-a43a0f9c]{color:var(--second-color)}.form-custom[data-v-a43a0f9c]{border:1px solid #444444;background-color:var(--main-back-color);position:fixed;bottom:0;left:0;width:100%;padding:20px;color:#fff}.message-cloud[data-v-a43a0f9c]{border:1px solid #444444;border-radius:15px;margin:12px 10px;padding:16px;background-color:var(--main-back-item-color)}.message-header[data-v-a43a0f9c]{font-size:large;font-weight:200}.message-content[data-v-a43a0f9c]{font-weight:500;white-space:pre-line}.message-footer[data-v-a43a0f9c]{font-weight:400;color:var(--second-color)}.form-block[data-v-a43a0f9c]{height:140px}.messages-block[data-v-a43a0f9c]{height:calc(100dvh - 200px);overflow-y:auto;scrollbar-width:none}@media (min-width: 1025px){.center-block-custom[data-v-a43a0f9c]{width:700px;margin:0 auto}}.center-message[data-v-a43a0f9c]{height:calc(100dvh - 140px)}.error-message[data-v-13746d20]{color:brown;margin:16px 0} diff --git a/static/user/index.html b/static/user/index.html index 4c4f9ae..f1b1200 100644 --- a/static/user/index.html +++ b/static/user/index.html @@ -5,8 +5,8 @@ Вечерний детектив - - + +
diff --git a/story/story.json b/story/story.json index 2f9d911..8e3d209 100644 --- a/story/story.json +++ b/story/story.json @@ -8,7 +8,7 @@ { "code": "А", "name": "Администрация", - "text": "Тут работают директор и старший вожатый, на столе вы находите расписание на 23 августа. Стопку книг по педагогике и какие-то записки от детей, похоже они очень любили Лёху.", + "text": "Тут работают директор и старший вожатый. На столе Лехи вы находите расписание на 23 августа. Стопку книг по педагогике и какие-то записки от детей — похоже они очень любили Лёху.", "applications": [ { "name": "Расписание дня" @@ -18,7 +18,7 @@ { "code": "В-1", "name": "Вход", - "text": "Ржавые ворота с выцветшей табличкой «Добро пожаловать в «Сосновый Бор» скрипят на ветру. За ними — узкая дорога, уходящая вглубь соснового леса. На покосившемся стенде у проходной — пожелтевший плакат с информацией:\n\n\"Лагерь «Сосновый Бор» - Место, где рождаются характеры.\"\n\n«Орлы» — спортивные, загорелые, с грамотами за победы в эстафетах. Их крики слышны даже на рассвете.\n\n«Лисы» — те, кто вместо костра сидит с книгами. Их шепотом называют «ботанами», но именно они всегда знают ответ.\n\n«Волки» — вечные нарушители. Их следы находят то на крыше столовой, то у запретной водонапорной вышки.\n\n«Совы» — тихие художники и поэты. Их рисунки иногда находят в лесу — странные, будто нарисованные не совсем их рукой.\n\nВ самом низу подпись: Директор лагеря - Виктор Сергеевич Громов." + "text": "Ржавые ворота с выцветшей табличкой «Добро пожаловать в «Сосновый Бор» скрипят на ветру. За ними — узкая дорога, уходящая вглубь соснового леса. На покосившемся стенде у проходной — пожелтевший плакат с информацией:\n\n\"Лагерь «Сосновый Бор» - Место, где рождаются характеры.\"\n\n«Орлы» — спортивные, загорелые, с грамотами за победы в эстафетах.\n\n«Лисы» — те, кто вместо костра сидит с книгами. Их шепотом называют «ботанами», но именно они всегда знают ответ.\n\n«Волки» — вечные нарушители. Их следы находят то на крыше столовой, то у водонапорной вышки.\n\n«Совы» — тихие художники и поэты. Их рисунки иногда находят дааже в лесу.\n\nВ самом низу подпись: Директор лагеря - Виктор Сергеевич Громов." }, { "code": "В-2", @@ -28,107 +28,127 @@ { "code": "Д", "name": "Душ", - "text": "Вы дергаете дверь душа, она закрыта, завхоз на перекуре, говорит что душ не работает, у качегара голова болит, уже вторые сутки, они громко смеются. Поговорив с женщинами вы узнаете что кормят в лагере очень плохо, даже 2 проверки приезжали, нарушений не нашли, но дети жалуются и почти не едят, Лёша сам ругаться приходил несколько раз, уж очень он за детей волновался." + "text": "Вы дергаете дверь душа, она закрыта. Завхоз и повариха, сидящие на лавочке рассказали, что душ не работает, что у кочегара голова болит уже вторые сутки, и почему-то громко расхохотались. Поговорив с женщинами вы узнаете что кормят в лагере очень плохо, даже 2 проверки приезжали – нарушений не нашли, но дети жалуются и почти не едят. Лёша сам ругаться приходил несколько раз, уж очень он за детей волновался." }, { "code": "К-1", "name": "Клуб", - "text": "В клубе вас встречает диджей Пётр, рассказывает что дискотека прошла на ура, танцевали и пели под все самые лучшие песни. Кажется он почти не общался с Лехой и до сих пор не знает что произошло. А какие медляки, танцевал весь лагерь, правда Макса и Даши не было, они у нас главные знаменитости, танцуют медляки каждый вечер а днем делают вид что противны друг другу, думают что дети верят в их притворство." + "text": "В клубе вас встречает диджей Пётр. “Концерт как всегда душевный, все плакали обнимались, вроде все здесь были, хотя награждение лучший ребенок в этот раз Лёха проводил, а не броненосец, вот его то я вчера и не видел”. Он рассказывает что дискотека прошла на ура, танцевали и пели под все самые лучшие песни. Кажется он почти не общался с Лехой и до сих пор не знает что произошло: «А какие медляки, танцевал весь лагерь, правда Макса и Даши не было. Они у нас главные знаменитости, танцуют медляки каждый вечер, а днем делают вид что противны друг другу, думают что дети верят в их притворство»" }, { "code": "К-2", "name": "Костровище", - "text": "В глубине лагеря, за последним отрядом, расчищена круглая площадка, окруженная полукругом пеньков-сидушек, сколоченных из толстых спилов сосны. В центре — огромный костровой круг, выложенный из камней, почерневших от бесчисленных огней." + "text": "В глубине лагеря, за последним отрядом расчищена круглая площадка, окруженная полукругом пеньков-сидушек, сколоченных из толстых спилов сосны. В центре — огромный костровой круг, выложенный из камней, почерневших от бесчисленных огней." + }, + { + "code": "К-3", + "name": "Коморка физрука", + "text": "Тесное помещение, забитое спортинвентарём до самого потолка. В углу валяется порванный мат, из которого торчит пожелтевший поролон. На полках вперемешку лежат мячи разных видов – футбольные, волейбольные, баскетбольные, – половина из которых явно спущена. Воняет резиной, потом и старыми кроссовками." + }, + { + "code": "Л", + "name": "Лавки", + "text": "Пара покосившихся деревянных скамеек, выкрашенных когда-то в зелёную краску, но теперь облезлых до серой древесины. Сиденья испещрены выцарапанными именами, сердечками и нецензурными словами – кто-то старательно выводил их гвоздём или кончиком ключа." }, { "code": "М", "name": "Медпункт", - "text": "Небольшое побелено-голубое здание в тени сосен. Внутри – приемная с выцветшими плакатами про \"чистые руки\" и \"опасность клещей\", изолятор с двумя койками за занавеской, а дальше – общий душ и туалет. На столе стоят 3 кружки из под чая. Печенье \"Юбилейное\" в открытой пачке. Медицинская карта с последней записью: \"24.08.99 – Волкова С. (отряд \"Орлы\") – жалобы на температуру и тошноту. Диагноз: пищевое отравление?\" В мусорном ведре вы замечаете упаковку от таблетки, 3 пакетика чая и использованный презерватив. Слабый аромат духов – дешевый, сладкий, явно не медицинский." + "text": "Небольшое побелено-голубое здание в тени сосен. Внутри – приемная с выцветшими плакатами про “чистые руки” и “опасность клещей”, изолятор с двумя койками за занавеской, а дальше – общий душ и туалет. На столе стоят 3 кружки из под чая. Печенье “Юбилейное” в открытой пачке. Медицинская карта с последней записью: “22:30 23.08.99 – Волкова С. (отряд “Орлы”) – жалобы на температуру и тошноту. Диагноз: пищевое отравление?” В мусорном ведре вы замечаете упаковку от таблетки, 3 пакетика чая и использованный презерватив. Слабый аромат духов – дешевый, сладкий, явно не медицинский." }, { "code": "О-1", "name": "Отряд 1", - "text": "Белое кирпичное здание, с выложенными кирпичом \"1970\". Сбоку нарисован Чебурашка, коричневой и красной краской. Отряд опрятный но сильно пахнет потом. Койки заправлены с армейской аккуратностью. На стене – газета с детскими стихами, где кто-то красной ручкой исправил рифмы на похабные." + "text": "Белое кирпичное здание, с выложенными кирпичом “1970”. Сбоку нарисован Чебурашка, коричневой и красной краской. Отряд опрятный но сильно пахнет потом. Койки заправлены с армейской аккуратностью. На стене – газета с детскими стихами, где кто-то красной ручкой исправил рифмы на похабные." }, { "code": "О-2", "name": "Отряд 2", - "text": "Тени от сосен за окном рисуют на стенах полосатые узоры. Заходя внутрь здания, вы замечаете одного из вожатых Кирилла. Заведя разговор о произошедшем, по секрету узнаёте, что его напарница Даша бегает на свиданки с вожатым первого отряда Максимом. Больше ничего необычного вы не заметили" + "text": "Тени от сосен за окном рисуют на стенах полосатые узоры. Зайдя внутрь здания, вы замечаете одного из вожатых — Кирилла. Заведя разговор о произошедшем, вы по секрету узнаёте, что его напарница Даша бегает на свиданки с вожатым первого отряда Максимом. Больше ничего необычного вы не заметили." }, { "code": "О-3", "name": "Отряд 3", - "text": "Приближаясь, вы осматриваете кирпичное здание, с нарисованным сбоку здания мультяшным героем. Переводя взгляд в окно, вы видите детей, разбившись на группки, кто то рисует, кто то бегает, а кто то просто сидит в сторонке. Вы тоже за тем, что пропало? — раздаётся голос за спиной. Обернувшись, видите мальчика лет 12 с слишком взрослым взглядом. Лёха говорит, что если что — искать надо в \"лисах\". Только он не договорил... что именно. Он нервно оглядывается и исчезает за углом, оставив вас с новой загадкой и ощущением, что за вами уже наблюдают." + "text": "Приближаясь, Вы осматриваете кирпичное здание с нарисованным сбоку здания мультяшным героем. Переводя взгляд в окно, вы видите детей, разбившихся на группки: кто-то рисует, кто-то бегает, а кто-то просто сидит в сторонке. «Вы тоже за тем, что пропало?» — раздаётся голос за спиной. Обернувшись, вы видите мальчика лет 12 с слишком взрослым взглядом. «Лёха говорит, что если что — искать надо в «лисах». Только он не договорил... что именно. Он нервно оглядывается и исчезает за углом, оставив вас с новой загадкой и ощущением, что за вами уже наблюдают." }, { "code": "О-4", "name": "Отряд 4", - "text": "У входа в отряд вы видите десятки пар обуви, аккуратно выставленных в ряд. Среди них вы сразу замечаете те самые кроссовки — с характерным зигзагообразным протектором, слегка запачканные грязью и... чем-то тёмным у носка. — Это Катины! — оживляется девочка с косичками, тыча пальцем в обувь. — Она их всегда носит, даже когда дождь!" + "text": "У входа в отряд вы десятки пар обуви, аккуратно выставленных в ряд. Среди них вы сразу замечаете те самые кроссовки с характерным зигзагообразным протектором, слегка запачканные грязью и... чем-то тёмным у носка. «Это Катины!» — оживляется девочка с косичками, тыча пальцем в обувь. — «Она их всегда носит, даже когда дождь!»" }, { "code": "П", "name": "Площадь", - "text": "Площадь в лагере, развивается флаг России, флаг лагеря, зелёное полотно с белой сосной. Чисто выметен асфальт, музыку здесь почти не слышно хотя граммофон висит на ближайшем столбе." + "text": "Площадь в лагере, развивается флаг России и флаг лагеря — зелёное полотно с белой сосной. Чисто выметен асфальт. Музыку здесь почти не слышно хотя граммофон висит на ближайшем столбе." }, { "code": "С-1", "name": "Столовая", - "text": "В столовой пахнет хлоркой, висит плакат чистоты, там вы никого не нашли." + "text": "В столовой пахнет хлоркой, висит плакат чистоты. Там вы никого не нашли." }, { "code": "С-2", "name": "Стадион", - "text": "На стадионе вы встречаете детей 3 и 4 отрядов, вы интересуетесь почему они не собирают вещи, вам рассказывают что их вожатые самые классные на земле, и они приучили их к спорту, каждое утро они даже бегали с Катей вокруг стадиона и водонапорной вышки. Но сегодня последний день и Катя почему то отправила их играть в волейбол, а бегать запретила." + "text": "На стадионе вы встречаете детей 3 и 4 отрядов. Вы интересуетесь, почему они не собирают вещи. Вам рассказывают, что их вожатые самые классные на земле, они приучили их к спорту — каждое утро они даже бегали с Катей вокруг стадиона и водонапорной вышки. Но сегодня последний день и Катя почему-то отправила их играть в волейбол, а бегать запретила." }, { "code": "Т", "name": "Туалет", - "text": "За туалетом вы находите пачку сигарет, и записку как у лехи, размер и бумага совпадают. На ней написано: сегодня вам сильно повезет, не сдавайся и все получится. Похоже кто-то раздавал печенье с предсказанием." + "text": "За туалетом вы находите пачку сигарет и записку как у Лехи, размер и бумага совпадают. На ней написано «Сегодня вам сильно повезет, не сдавайся и все получится!» Похоже кто-то раздавал печенье с предсказанием.", + "applications": [ + { + "name": "Газета" + } + ] + }, + { + "code": "Ц", + "name": "Цветы", + "text": "Неровный овал, огороженный потрёпанными синими бордюрами, которые когда-то были яркими, но теперь выцвели под солнцем и покрылись трещинами. Земля в одних местах усыпана мелкими камушками, в других – потрескалась от жары, будто жаждет воды. Но вопреки всему здесь цветут бархатцы – жёлтые и оранжевые, как маленькие огоньки." }, { "code": "МК", "name": "Макс Крутов", - "text": "Перед вами парень в рваных джинсах и черной футболке, похожий на музыканта. Говорит что был в душе вчера во время дискотеки. Тёма был на дискотеке, а наши все вчера на медляках отжигали. Ну я и решил помыться. Пока он это рассказывал мимо проходил директор. Смотрите наш броненосец пиджак скинул, а я думал это его кожа." + "text": "Перед вами парень в рваных джинсах и черной футболке, похожий на музыканта. Говорит что был в душе вчера во время дискотеки: «Тёма был на дискотеке, а наши все вчера на медляках отжигали. Ну, я и решил помыться. Пока в душ шёл у администрации у Лехи сигарету и стрельнул. Поговорили немного, о чем я вам не могу сказать. Потом мы заметили за туалетом какие-то шорохи, Леха решил проверить, сказал что за одно и обход сделает, якобы лишним не будет, ответственный наш» — Пока он это рассказывал мимо проходил директор — «Смотрите наш броненосец пиджак скинул, а я думал это его кожа!»." }, { "code": "АК", "name": "Артём Ковалёв", - "text": "Я следил за детьми в клубе, даже драку девочек разнял, ребята подслушали ссору Лехи с Алиной и поддерживали разные стороны, как видите очень яро. Макс отпросился в душ, с парнями вчера спортом был занят весь день." + "text": "«Я следил за детьми в клубе, даже драку девочек разнял — ребята подслушали ссору Лехи с Алиной и поддерживали разные стороны, как видите очень яро. Макс отпросился в душ, с парнями вчера спортом был занят весь день»." }, { "code": "ДО", "name": "Даша Орлова", - "text": "Вчера весь вечер я сидела с детьми которые не пошли на дискотеку. Но те ребята которые могли это подтвердить уже уехали домой." + "text": "«Вчера весь вечер я сидела с детьми которые не пошли на дискотеку. Но те ребята которые могли это подтвердить уже уехали домой»." }, { "code": "КЛ", "name": "Кирилл Лебедев", - "text": "Мы вчера с Аней Катей и Темой дежурили на дискотеке. Потом сразу пошли на костер, это могла быть самая лучшая смена. Я рассказывал много историй вчера на костре и про историю лагеря и про новости лагеря, вспоминали смену. На улицу не выходили, а там холодно и ничего не видно позно же уже было." + "text": "«Леху на втором ужине только видел, да и то он мимо прошел. Мы вчера с Аней, Катей и Темой дежурили на дискотеке. Потом сразу пошли на костер, это могла быть самая лучшая смена. Я рассказывал много историй вчера на костре и про историю лагеря и легенды разные. На свечку мы ушли в отряды зашли — вспоминали смену, делились впечатлениями. На улицу больше не выходили, там похолодало, да и не видно уже ничего было — слишком поздно»." }, { "code": "АГ", "name": "Артём Глушко", - "text": "Артём сидит и читает книгу в своем отряде, попутно помогает ребятам собирать чемоданы, он интересуется удалось ли что-то узнать, рассказывает что они с Лехой как-то застали Макса за кражей денег из кассы, и с тех пор в их отношениях была напряженность. Он предложил вам печенье и пошел дальше помогать ребятам." + "text": "Артём сидит и читает книгу в своем отряде, попутно помогает ребятам собирать чемоданы. Он интересуется, удалось ли что-то узнать, рассказывает, что они с Лехой как-то застали Макса за кражей денег из кассы, и с тех пор в их отношениях была напряженность. Артем предложил вам печенье и пошел дальше помогать ребятам." }, { "code": "АС", "name": "Анна Соколова", - "text": "Лёха был ответственным человеком и всегда помогал, иногда он делал больше чем от него требовалось. Он мог и веселые старты провести, когда физрук ленится, он вёл все мероприятия лагеря со сцены, встречал проверки, мне кажется он некоторые даже устраивал чтобы лагерь лучше делать, директор даже на него скидывал какие-то бумажные дела, Лёха был очень начитанный хоть и учился на математика, любила с ним поболтать." + "text": "«Лёха был ответственным человеком и всегда помогал, иногда он делал больше чем от него требовалось. Он мог и веселые старты провести, когда физрук ленится, вёл все мероприятия лагеря со сцены, встречал проверки. Мне кажется, он некоторые проверки даже устраивал сам, чтобы лагерь лучше делать. Директор даже на него скидывал какие-то бумажные дела. Лёха был очень начитанный хоть и учился на математика, любила с ним поболтать»." }, { "code": "КС", "name": "Катя Светлова", - "text": "На диване в центре общей комнаты отряда вы встречаете молодую девушку, лет 20-22, в яркой оранжевой футболке с принтами, шортах и белых носках. Длинные волосы, собранные в небрежный хвост или косу, минимум макияжа. Она сидит в обнимку старших мальчиков отряда, смеётся и рассказывает какую-то историю." + "text": "На диване в центре общей комнаты отряда вы встречаете молодую девушку, лет 20-22, в яркой оранжевой футболке с принтами, шортах и белых носках. Длинные волосы, собранные в небрежный хвост или косу, минимум макияжа. Она сидит в обнимку со старшими мальчиками отряда, смеётся и рассказывает им какую-то историю." }, { "code": "АЗ", "name": "Алина Зайцева", - "text": "Вы находите ее на турнике, девушка спортивного телосложения. Слезы бегут по ее лицу, на ваши вопросы она не отвечает. Про убийство ей сообщили первой." + "text": "Вы находите ее рядом с турниками. Девушка спортивного телосложения сидит на траве прикрыв лицо капюшоном. Слезы бегут по ее лицу. “Мы встречались, хотели даже пожениться, он последнее время очень злой ходил, эта смена его совсем из колеи выбила. Рассказывать он не хотел, знаю что долго за документами засиживался уже когда все спали”." }, { "code": "ВСГ", "name": "Виктор Сергеевич Громов", - "text": "Труп обнаружил охранник Виктор Петрович на ночном обходе, позвал меня, после проверки пульса я позвонил в полицию. Вот вам список работников лагеря. страшно осознавать что кто-то из них может быть убийцей.", + "text": "«Труп обнаружил охранник Виктор Петрович на ночном обходе, позвал меня. Я проверил пульс и позвонил в полицию. Вот вам список работников лагеря. Страшно осознавать что кто-то из них может быть убийцей».", "applications": [ { "name": "Список работников лагеря" @@ -138,17 +158,17 @@ { "code": "ЕО", "name": "Елена Орлова", - "text": "Очень красивая статная девушка в белом халате встречает вас нежной улыбкой. Во время дискотеки я была в приемной, королевская ночь по статистике самая травмоопасная. Хотя на удивление только одна девочка с температурой, я выдала таблетку и вожатая увела ее обратно в отряд." + "text": "Очень красивая статная девушка в белом халате встречает вас нежной улыбкой. «Во время дискотеки я была в приемной, королевская ночь по статистике самая травмоопасная. Хотя на удивление только одна девочка с температурой, я выдала таблетку и вожатая увела её обратно в отряд»." }, { "code": "СС", "name": "Сергей Смирнов", - "text": "В небольшой коморке, залитой ярким солнцем, вы подошли к мужчине среднего возраста. «Спал я наверно, может телевизор смотрел. Что мне еще делать ночью? На дискотеки ходить? Днем дел много, не только своих, там помоги, сям помоги, никто ничего не может, вот и помогаю. Устаю, возраст как никак. Петрович вот попросил, вчера помочь с вывозом мусора, поболтали мы, да и пошел я к себе»." + "text": "Вы подошли к мужчине среднего роста в спортивном костюме: «Вечером телевизор смотрел, музыка долбила спать не давала. Петрович заходил, мы досмотрели “музыкальный ринг” да и побёг он. На дискотеки я не ходок, да и Лёха сказал помощь не нужна. За день набегался, дел много и не только своих, там помоги, сям помоги, никто ничего не может, вот и помогаю. Устаю, возраст как никак. Петрович попросил, вчера помочь с вывозом мусора с тех пор в коморке и сидел. Лёху видел последний раз в воскресенье, он сказал зарядку не проводить пущай дети поспят»." }, { "code": "ВПБ", "name": "Виктор Петрович Белов", - "text": "У нас режим, завтрак в 9 утра, вынос мусора в 9 вечера, в 23:00 обход. На обходе я и обнаружил тело, отходил в пол десятого это до клуба проверить все ли спокойно, и за клубом, площади проверил, минут 30 заняло, фонари перегорели у клуба, пришлось с фонариком по кустам полазить. Как тело обнаружил перепугался и сразу в администрацию.", + "text": "«У меня свой режим: завтрак в 9 утра, вынос мусора в 9 вечера, в 11 вечера обход. Всю дискотеку Лёха сидел в администрации, как с концерта пришел так и не выходил. В пол десятого я до клуба отходил проверить все ли спокойно пока дискотека, проверил все и за клубом, площадь посмотрел — минут 30 заняло. Фонари давно у клуба не работают, пришлось с фонариком везде лазить. Тело обнаружил уже на обходе — очень перепугался и сразу в администрацию побежал».", "applications": [ { "name": "Карта лагеря"